Рекурсия по доходности

Есть ли способ смешать рекурсию иyield заявление? Например, генератор бесконечных чисел (с использованием рекурсии) будет выглядеть примерно так:

def infinity(start):
    yield start
    # recursion here ...

>>> it = infinity(1)
>>> next(it)
1
>>> next(it)
2

Я пытался:

def infinity(start):
    yield start
    infinity(start + 1)

а также

def infinity(start):
    yield start
    yield infinity(start + 1)

Но никто из них не сделал то, что я хочу, первый остановился после того, как он уступилstart а второй уступилstartЗатем генератор, а затем остановился.

НОТА: Пожалуйста, я знаю, что вы можете сделать это, используя цикл while:

def infinity(start):
    while True:
        yield start
        start += 1

Я просто хочу знать, можно ли это сделать рекурсивно.

Ответы на вопрос(3)

Ваш ответ на вопрос