<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def flatten(iterable, string_flattening=False):
 """ Flatten an given iterable of iterables into one list. Parameters iterable : iterable string_flattening : bool If this is False, then strings are NOT flattened Returns ------- flat_list : List Examples -------- [1, 2, 3] [1, 2, 3, 4, 5, 6] [1, 2, 3, 4, 5] """

    flat_list = []
    for item in iterable:
        is_iterable = (isinstance(item, collections.Iterable) and
                       (string_flattening or
                        (not string_flattening and not isinstance(item, str))
                        ))
        if is_iterable:
            flat_list.extend(flatten(item))
        else:
            flat_list.append(item)
    return flat_list