Bonjour tout le monde,

Je suis un peu nouveau en python. Je dois implémenter un petit problème pour permuter tous les éléments de liste. Il y a une méthode toute faite, mais il m'a été imposé d'utiliser la méthode récursive. Donc je suis allé sur internet. J'ai récupérer un programme pour pouvoir m'adapter sur mon problème. Pour comprendre, j'ai placé des prints. Mais je rencontre des difficultés surtout avec la fonction yield. Sur documentation, il est indiqué qu'il crée un objet. Puis il prend des valeurs à la volé. Je voudrai savoir pourquoi mon print ne marche pas. Si vous pouvez éclairer un peu sur le fonctionnement de yield je vous serai reconnaissance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def all_perms(elements):
    if (len(elements) <=1):
        yield elements
    else :
        for perm in all_perms(elements[1:]):
            print("\n")
            for i in range(len(elements)):
                yield perm[:i]+elements[0:1]+perm[i:]
                print(elements)
                print("\n")
                print(perm)
 
 
 
 
b1 = [1,2,3]
bn = all_perms(b1)

il compile mais, il m'affiche rien