遞歸實現全排列python


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")


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM