I have a Python generator that can call itself to get more elements to yield. It looks like this:
def gen(list): # ... if list: for x in gen
Your code sample is very idiomatic and concise, no need and no real chance for further improvements and especially not when it comes at readability.