python遞歸實現"abcd"字符串全排列
1.保持a不動,動bcd
2.保持b不動,動cd
3.保持c不動,動d
def pailie(head="",string=""):
if len(string)>1:
for father_string in string:
pailie(head+father_string,string.replace(father_string,"")) #關鍵一點:將頭和尾全部傳下去
else:
print(head+string)
pailie(string="abcd")
python遞歸實現"abad"字符串全排列
與上一個兩個不同,一是,第一個a排完順序后,下一個a不能再排,二是替換的時候不能把重復的也替換掉
def pailie(head="",string=""):
if len(string)>1:
for num,father_string in enumerate(string):
if father_string in string[0:num]:#如果字符與前面的重復說明拍過順序了
continue
pailie(head+father_string,string.replace(father_string,"",1))#只能替換一次
else:
print(head+string)
pailie(string="abca")