순열 목적으로 생성자를 만들려고합니다. 파이썬에서 다른 방법을 사용하고 있습니다.하지만 다른 용도로 사용됩니다. 하지만 나는 값을 산출 할 수 없습니다. 도와 주실 수 있습니까?python에서 재귀 함수를 사용하여 yield
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)
'. '.join ([' '. join (s [: - 2]) 대신 s [ -1], s [-2]])''.join (s [: -2] + [s [-1], s [-2]])'또는 다소 덜 분명한' .join (s [: - 2] + s [: - 3 : -1])'(끝에서부터 세 번째 문자를 포함하여 끝까지 뒤쪽으로 슬라이스). – Dougal