Code前端首页关于Code前端联系我们

Python 回溯:查找给定字母集的所有可能排列的示例

terry 2年前 (2023-09-27) 阅读数 68 #数据结构与算法

回溯是递归的一种形式。但这涉及到为任何选项选择单一替代方案。我们首先选择一个选项并退出。如果达到某个条件,则可以得出结论:该特定选项无法提供所需的解决方案。对每个可用选项重复这些步骤,直到获得所需的解决方案。

以下是查找给定字母集的所有可能排列的示例。当选择一对时,我们使用回溯来验证是否创建了确切的对。如果尚未创建,则该对将添加到答案列表中,否则将被忽略。

def permute(list, s):
    if list == 1:
        return s
    else:
        return [ y + x
                 for y in permute(1, s)
                 for x in permute(list - 1, s)
                 ]

print(permute(1, ["a","b","c"]))
print(permute(2, ["a","b","c"]))
Python

运行上面的代码示例,得到以下结果 -

['a', 'b', 'c']
['aa', 'ab', 'ac', 'ba', 'bb', 'bc', 'ca', 'cb', 'cc']

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门