def anagrammes(mot):
    if len(mot) == 1:
        yield mot
    else :
        for z in set(mot): # set(mot) permet de créer un ensemble de lettres DISTINCTES
            i = mot.index(z)
            for sm in anagrammes( mot[0:i] + mot[i+1:] ):
                yield z + sm
 
for m in anagrammes("BON ANNIVERSAIRE FRED"): print(m)