code: def roundrobin(*iterables):
      
      raise NotImplementedError('not sure if this implementation is correct')
      # http://stackoverflow.com/questions/11125212/interleaving-lists-in-python
      #sentinel = object()
      #return (x for x in chain(*zip_longest(fillvalue=sentinel, *iterables)) if x is not sentinel)
      pending = len(iterables)
      if six.PY2:
          nexts = cycle(iter(it).next for it in iterables)
      else:
          nexts = cycle(iter(it).__next__ for it in iterables)
      while pending:
          try:
              for next in nexts:
                  yield next()
          except StopIteration:
              pending -= 1
              nexts = cycle(islice(nexts, pending))
docs: roundrobin('ABC', 'D', 'EF') --> A D E B F C