python实现数组的全排列,常规算法

2022-05-03 00:00:00 算法 数组 排列

常规方法实现python数组的全排列操作
全排列解释:从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列。当m=n时所有的排列情况叫全排列。

"""
皮蛋编程(https://www.pidancode.com)
创建日期:2022/3/30
功能描述:python实现数组的全排列,常规算法
"""
def perm(l):
    if(len(l)<=1):
        return [l]
    r=[]
    for i in range(len(l)):
        s=l[:i]+l[i+1:]
        p=perm(s)
        for x in p:
            r.append(l[i:i+1]+x)
    return r

print(perm([1,2,3]))

输出结果如下:
[[1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 1, 2], [3, 2, 1]]

以上代码在python3.9环境下测试通过。

相关文章