时间:2026-03-13 11:12
人气:
作者:admin
题目描述
实现方式
使用python 自带的itertools.permutations函数,专门用于生成排列,非常方便。但注意的是permutations 的返回值是元组,不是列表
num = [1, 2, 3, 3]
from itertools import permutations
all_permutations = list(list(i) for i in set(permutations(num)))
print(all_permutations)
自己写代码实现,使用递归,每次将列表中一个元素提取出来,然后让其他元素全排列,得到全排列的组合后,再将第一个元素插入到全排列的列表中的各个位置,就得到了想要的结果
num = [1, 2, 3, 3]
def fullnum(nums):
if len(nums) == 0:
return None
elif len(nums) == 1:
return [nums]
res = []
left = nums[0]
right = fullnum(nums[1:])
for i in right:
for j in range(len(i)+1):
result = i[:j] + [left] + i[j:]
if result not in res:
res.append(result)
return res
print(fullnum(num))