例如:[‘a’, ‘b’, ‘c’] 输出 [‘a’, ‘b’, ‘c’] [‘a’, ‘c’, ‘b’] [‘b’, ‘a’, ‘c’] [‘b’, ‘c’, ‘a’] [‘c’, ‘a’, ‘b’] [‘c’, ‘b’, ‘a’]
方法一:利用递归的方式实现
def permutation(li):
len_list = len(li)
if len_list == 1:
return li
result = []
for i in range(len_list):
res_list = li[:i] + li[i+1:]
s = li[i]
per_result = permutation(res_list)
if len(per_result) == 1:
result.append(li[i:i + 1] + per_result)
else:
result += [[s] + j for j in per_result]
return result
方法二:利用python自带的模块
import itertools
def permutation(li):
print(list(itertools.permutations(li)))
本文深入探讨了列表元素的排列算法,提供了两种实现方式:一种是通过递归算法手动实现排列,另一种则是利用Python内置的itertools模块快速生成所有可能的排列组合。无论是初学者还是有经验的开发者,都能从中获得实用的编程技巧。

5969

被折叠的 条评论
为什么被折叠?



