Pb Permutation lettres par récursivité
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.
Code:
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')) |
Merci