Recursão usando yield

Existe alguma maneira de misturar recursão e oyield declaração? Por exemplo, um gerador de número infinito (usando recursão) seria algo como:

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

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

Eu tentei

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

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

Mas nenhum deles fez o que eu quero, o primeiro parou depois que produziustart e o segundo produziustart, depois o gerador e depois paro

NOTA Por favor, eu sei que você pode fazer isso usando um loop while:

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

Só quero saber se isso pode ser feito recursivament

questionAnswers(6)

yourAnswerToTheQuestion