docs: def recursive_iter(enumerables):
      '''
      Walks nested list-like elements as though they were sequentially available
  
      recursive_iter([[1,2], 3])
      # => 1, 2, 3
      '''
      if not is_collection(enumerables) or isinstance(enumerables, (basestring, dict)):
          yield enumerables
      else:
          for elem in enumerables:
              for sub_elem in recursive_iter(elem):
                  yield sub_elem