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 Mideng(li):
    if(type(li)!=list):
        return
    if(len(li)==1):
        return [li]
    result=[]
    for i in range(0,len(li[:])):
        bak=li[:]
        head=bak.pop(i)  #head of the recursive-produced value
        for j in Mideng(bak):
            j.insert(0,head)
            result.append(j)
    return result
def MM(n):
    if(type(n)!=int or n<2):
        return
    return Mideng(list(range(1,n)))

print(MM(4))

输出结果如下:
[[1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 1, 2], [3, 2, 1]]
以上代码在python3.9环境下测试通过。

相关文章