Как работает «yield» в этом генераторе перестановок?

def perm_generator(lst):
    if len(lst) == 1:
        yield lst
    else:
        for i in range(len(lst)):
            for perm in perm_generator(lst[:i] + lst[i+1:]):
                yield [lst[i]] + perm

Этот код вызывает у меня проблемы, так как я не понимаю, какyields соединяются друг с другом. Я понимаю, чтоyield действует какreturn, но он временно останавливается, пока не будет вызван снова. Как это сделатьyieldс работой?

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

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