def funB():
    for x in range(10, 20):
        yield x

def funC():
    for x in range(20, 30):
        yield x

def funs():
    for x in itertools.chain(funA(), funB(), funC()):
        yield x
print([x for x in funs()])
Python - is there any way to organize a group of yields in sub function to yield outside the main function?