我正在尝试创建一个用于排列目的的生成器。我知道在 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]])
else:
for i in range(p,l):
tmp=s[p]
s[p]=s[i]
s[i]=tmp
perm(s,p+1,ii)