簡體   English   中英

發出生成字符串排列列表的問題

[英]Issue generating a list of permutations of a string

我想使用回溯算法生成字符串的所有排列的列表。

我從以前的帖子中修改了一些代碼: https : //stackoverflow.com/a/20955291/12021192

def permutations(string, step = 0):

    permTrack = []

    if step == len(string):
        permTrack.append(''.join(string))

    for i in range(step, len(string)):
        string_copy = list(string)
        string_copy[step], string_copy[i] = string_copy[i], string_copy[step]
        permutations(string_copy, step + 1)

    return permTrack

permTrack = permutations('ABC')

我期望permTrack = ['ABC', 'ACB', 'BAC', 'BCA', 'CAB', 'CBA] ,但實際輸出為permTrack = [ ]

想法是在step == len(string)時,在基本情況下將permTrack附加到列表中。 例如,這可以在原始代碼中打印出排列。

有人可以幫我解決這個問題嗎?

當遞歸調用permutations返回的內容時,您不執行任何操作。

如果將返回的內容添加到permTrack ,則應該獲得所需的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM