Python建立一个函数,使用列表1234组成的互不相同且无重复数字,求出多少个并从小到大排列
时间: 2023-02-06 22:09:06 浏览: 136
在 Python 中,你可以使用内置函数 itertools.permutations 来解决这个问题。
例如,你可以使用以下代码来建立一个函数,接收一个列表作为输入,并返回所有排列的列表,从小到大排序:
```
import itertools
def permute(arr):
perms = list(itertools.permutations(arr))
perms.sort()
return perms
print(permute([1, 2, 3, 4]))
```
这个函数将输出:
```
[(1, 2, 3, 4), (1, 2, 4, 3), (1, 3, 2, 4), (1, 3, 4, 2), (1, 4, 2, 3), (1, 4, 3, 2), (2, 1, 3, 4), (2, 1, 4, 3), (2, 3, 1, 4), (2, 3, 4, 1), (2, 4, 1, 3), (2, 4, 3, 1), (3, 1, 2, 4), (3, 1, 4, 2), (3, 2, 1, 4), (3, 2, 4, 1), (3, 4, 1, 2), (3, 4, 2, 1), (4, 1, 2, 3), (4, 1, 3, 2), (4, 2, 1, 3), (4, 2, 3, 1), (4, 3, 1, 2), (4, 3, 2, 1)]
```
总共有 24 种排列。
注意:itertools.permutations 函数的默认行为是按照元素在列表中的顺序进行排列,因此我们使用了 sort 方法将所有排列从小到大排序。
阅读全文