code: def flatten(items):
      
      for x in items:
          if isinstance(x, Iterable) and not isinstance(x, (str, bytes)):
              for sub_x in flatten(x):
                  yield sub_x
          else:
              yield x
docs: Yield items from any nested iterable.
  
      >>> list(flatten([[1, 2, 3], [[4, 5], 6, 7]]))
      [1, 2, 3, 4, 5, 6, 7]