J'essaie de créer un générateur à des fins de permutation. Je sais qu'il existe d'autres façons de le faire en python. Mais c'est pour autre chose. Mais je ne suis pas capable de donner les valeurs. Pouvez-vous aider?céder avec une fonction récursive en python
def perm(s,p=0,ii=0):
l=len(s)
s=list(s)
if(l==1):
print ''.join(s)
elif((l-p)==2):
yield ''.join(s)
yield ''.join([''.join(s[:-2]),s[-1],s[-2]])
#print ''.join(s)
#print ''.join([''.join(s[:-2]),s[-1],s[-2]])
else:
for i in range(p,l):
tmp=s[p]
s[p]=s[i]
s[i]=tmp
perm(s,p+1,ii)
Au lieu de ' '' .join ([ '' rejoindre (s [: -. 2]), s [ -1], s [-2]]) ', vous pouvez faire' '' .join (s [: - 2] + [s [-1], s [-2]]) 'ou le moins évident' '' .join (s [: - 2] + s [: - 3: -1]) '(qui se rétrécit de la fin à la fin mais n'inclut pas le troisième caractère de la fin). – Dougal