Bonjour,
Je n'arrive pas à présenter le résultat sous la bonne forme. En donnant le string 'abc', j'ai le résultat suivant : ["a['bc', 'cb']", "b['ac', 'ca']", "c['ab', 'ba']"].
Je ne vois pas du tout comment distribuer le a dans bc et cb pour avoir abc et acb. Quand on "remonte" la recursion, on a bien bc et cb mais la "remontée" suivante avec a se passe mal.
Pour la récursion j'utilise :
Arret Rec : len(my_string)==1
Rec : per(a,b,c) = a + per(b,c) , b + per(a,c) , c + per(a,b)
per(b,c) donne b+per(c) et c+per(b).
per(c) donne c donc bc donc abc.
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 def permut(my_string): result=[] if len(my_string)==1: return my_string else: for i,elt in enumerate(my_string): result.append(elt+str(permut(my_string[:i]+my_string[i+1:]))) return result print(permut('abc'))
Partager