python回溯法实现数组全排列输出
python回溯法实现数组全排列输出
全排列解释:从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列。当m=n时所有的排列情况叫全排列。
""" 皮蛋编程(https://www.pidancode.com) 创建日期:2022/3/30 功能描述:python回溯法实现数组全排列输出 """ from sys import stdout def perm(li, start, end): if (start == end): for elem in li: stdout.write(elem) print('') else: for i in range(start, end): li[start], li[i] = li[i], li[start] perm(li, start + 1, end) li[i], li[start] = li[start], li[i] if __name__ == '__main__': li = ['a', 'b', 'c', 'd'] perm(li, 0, len(li))
输出结果如下:
abcd
abdc
acbd
acdb
adcb
adbc
bacd
badc
bcad
bcda
bdca
bdac
cbad
cbda
cabd
cadb
cdab
cdba
dbca
dbac
dcba
dcab
dacb
dabc
以上代码在python3.9环境下测试通过。
相关文章