Recursión usando rendimiento

¿Hay alguna forma de mezclar recursividad yyield declaración? Por ejemplo, un generador de números infinitos (usando recursividad) sería algo como:

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

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

Lo intenté

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

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

Pero ninguno de ellos hizo lo que quería, el primero se detuvo después de que cedióstart y el segundo rindióstart, luego el generador y luego se detuvo.

NOTA Por favor, sé que puedes hacer esto usando un ciclo while:

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

Solo quiero saber si esto se puede hacer de forma recursiva.