fromitertoolsimportcycle,islicedefroundrobin(*iterables):"""roundrobin('ABC', 'D', 'EF') --> A D E B F C"""pending=len(iterables)nexts=cycle(iter(it).nextforitiniterables)whilepending:try:fornextinnexts:yieldnext()exceptStopIteration:pending-=1nexts=cycle(islice(nexts,pending))