code: def roundrobin(*iterables):
      "roundrobin('ABC', 'D', 'EF') --> A D E B F C"
      # Recipe credited to George Sakkis
      pending = len(iterables)
      nexts = itertools.cycle(iter(it).next for it in iterables)
      while pending:
          try:
              for next in nexts:
                  yield next()
          except StopIteration:
              pending -= 1
              nexts = itertools.cycle(itertools.islice(nexts, pending)f roundrobin(*iterables):
      "roundrobin('ABC', 'D', 'EF') --> A D E B F C"
      # Recipe credited to George Sakkis
      pending = len(iterables)
      nexts = itertools.cycle(iter(it).next for it in iterables)
      while pending:
          try:
              for next in nexts:
                  yield next()
          except StopIteration:
              pending -= 1
              nexts = itertools.cycle(itertools.islice(nexts, pending))
docs: roundrobin('ABC', 'D', 'EF') --> A D E B F C