Proszę wyjaśnić ten algorytm, aby uzyskać wszystkie permutacje ciągu

Poniższy kod generuje wszystkie permutacje dla ciągu:

def permutations(word):
    if len(word)<=1:
        return [word]

    #get all permutations of length N-1
    perms=permutations(word[1:])
    char=word[0]
    result=[]
    #iterate over all permutations of length N-1
    for perm in perms:
        #insert the character into every possible location
        for i in range(len(perm)+1):
            result.append(perm[:i] + char + perm[i:])
    return result

Czy możesz wyjaśnić, jak to działa? Nie rozumiem rekurencji.

questionAnswers(2)

yourAnswerToTheQuestion