python中,写一个用有m个元素的列表中的元素,进行组合的程序
时间: 2024-05-05 10:17:42 浏览: 43
算出从n个不同元素中取出m个元素(m≤n)的组合数——C语言代码
以下是一个使用递归方法生成m个元素的列表中的所有组合的Python程序:
```python
def combinations(lst, k):
if k == 0:
return [[]]
if not lst:
return []
first = lst[0]
rest = lst[1:]
combs = []
for c in combinations(rest, k-1):
combs.append([first] + c)
combs += combinations(rest, k)
return combs
m = int(input("请输入列表中元素个数:"))
lst = []
for i in range(m):
lst.append(input("请输入第{}个元素:".format(i+1)))
k = int(input("请输入组合元素个数:"))
print("列表中所有{}个元素的组合如下:".format(k))
for c in combinations(lst, k):
print(c)
```
使用示例:
```
请输入列表中元素个数:3
请输入第1个元素:A
请输入第2个元素:B
请输入第3个元素:C
请输入组合元素个数:2
列表中所有2个元素的组合如下:
['A', 'B']
['A', 'C']
['B', 'C']
```
该程序首先读取列表中元素的个数m,然后读取m个元素,将它们存储在lst列表中。接下来,程序读取组合中元素的个数k,并使用combinations函数生成所有k个元素的组合。combinations函数使用递归方法,首先处理基本情况,k为0时返回空列表,lst为空时返回空列表。对于其他情况,它将列表中的第一个元素first和剩余元素rest分离,然后递归地生成k-1个元素的组合和k个元素的组合,并将它们合并在一起。最后,程序使用生成的组合打印输出。
阅读全文