Есть ли в python способ изменить порядок обработки доходности от get? [Дубликат]

На этот вопрос уже есть ответ:

Первая версия itertools.chain () 2 ответа

Если я сделаю

def foo():
    yield from range(0,10)
    yield from range(10,20)

for num in foo():
    print(num)

Я получаю упорядоченный список от 0 до 19. Без изменения ввода функций диапазона, есть простой способ указать, что я хочу список, который идет: 0,10,1,11,2,12 ...

В основном я сначала хочу первый элемент каждого генератора. Чем я хочу второй элемент каждого генератора, а затем третий и т.

Бонусные баллы: есть ли способ изменить его так, чтобы когда генераторы выдавали неодинаковое количество результатов, второй генератор выдает оставшиеся результаты после завершения первого?