Python生成n个元素的全排列

本文将使用Python语言编写程序生成n个元素的全排列,代码不使用第三方库;

生成全排列

def permute(nums):

    length = len(nums)

    permutations = []

    def _permute(index=0):

        if index == length:
            permutations.append(nums[0:length])
        
        for i in range(index,length):
            nums[i],nums[index] = nums[index],nums[i]
            _permute(index+1)
            nums[i],nums[index] = nums[index],nums[i]
            
    _permute()

    return permutations

nums = [i for i in range(1,4)] #[1,2,3]

print("Input:\n",nums)
P = permute(nums)
print("Permutations:")
for p in P:
    print(p)

运行效果

Input:
 [1, 2, 3]
Permutations:
[1, 2, 3]
[1, 3, 2]
[2, 1, 3]
[2, 3, 1]
[3, 2, 1]
[3, 1, 2]

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/p/python-generate-full-permutation.html

分类: 计算机技术
推荐阅读:
如何查询电脑电池型号 要查询笔记本电脑的电池型号,可通过以下步骤进行:为方便查看结果,在桌面空白处右键单击,开打终端;也可使用命令提示符;
cannot use 1 (type int) as type bool in assignment错误的解决方法 在go语言中布尔类型不能接受其他类型的赋值,不支持自动或强制的类型转换。
Golang函数的多返回值 Golang可以说是少有支持多返回值的静态编程语言,并且可以给返回值命名,这在有的时候非常好用;
Golang安装gin库的详细教程及错误解决方法 Gin是用Go(Golang)编写的Web框架。 它具有类似于martini的API,其性能比httprouter快40倍。 如果您需要性能和良好的生产率,您会喜欢Gin
Rust使用abs()函数计算绝对值 在Rust编程语言中,可以使用abs()函数来计算一个数的绝对值;abs()函数可以用于整数和浮点数。
如何查看CPU的出厂日期 通常情况下,CPU的出厂日期是写在CPU的标签或者包装盒上的。如果您已经安装了CPU,则可以通过操作系统或者第三方软件来查看CPU的出厂日期。以下是一些方法: