stumblemodel 发表于 2024-6-11 20:27:17

排列组合问题

有一个列表,里面有很多不同的东西,把这些东西重新排列组合,如何列出所有情况,反回一个复合列表

FishC 发表于 2024-6-11 20:27:36

想要列出一个列表的所有排列组合,可以使用递归的方法。下面是一个示例代码:

def permutations(lst):
    # 列表只有一个元素时,直接返回该元素
    if len(lst) == 1:
      return
   
    # 递归调用,取出每个元素,与剩余元素进行排列组合
    result = []
    for i in range(len(lst)):
      rest = lst[:i] + lst
      for p in permutations(rest):
            result.append(] + p)
            
    return result

# 测试代码
my_list =
result = permutations(my_list)
print(result)

输出结果如下:

[, , , , , ]

在这个示例中,函数`permutations`接收一个列表作为参数,并返回一个包含所有排列组合情况的列表。首先,判断列表长度是否为1,如果是,则直接返回该列表。如果不是,则遍历列表中的每个元素,将其与剩余元素进行排列组合。使用递归的方式,将每个排列组合加入到结果列表中。

希望这个示例能够帮到你!如果还有其他问题,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

歌者文明清理员 发表于 2024-6-11 20:55:54

from collections import permutations
页: [1]
查看完整版本: 排列组合问题