在python中如何实现列表中元素的所有排列组合?如输入为['1','2','3']和2输出为['

在python中如何实现列表中元素的所有排列组合?如输入为['1','2','3']和2输出为['11','12','13','21','22','23','31','3... 在python中如何实现列表中元素的所有排列组合?如输入为['1','2','3']和2输出为['11','12','13','21','22','23','31','32','33']如输入为['1','2','3']和3输出为['111','112','113','121','122','123','131','132','133','211','212','213','221','222','223','231','232','233','311','312','313','321','322','323','331','332','333'] 展开
 我来答
文成上学去了
2016-05-04 · TA获得超过283个赞
知道小有建树答主
回答量:319
采纳率:33%
帮助的人:221万
展开全部
#!/usr/bin/python
#Two method for generate a list whose item is all possible permutation and combination come from every item of many list.

A = ['1', '2']
B = ['a', 'b', 'c']
C = ['A', 'B', 'C', 'D']

retList = []
for a in A:
for b in B:
for c in C:
retList.append((a,b,c))
print retList

print '*' * 40

def myfunc(*lists):
#list all possible composition from many list, each item is a tuple.
#Here lists is [list1, list2, list3], return a list of [(item1,item2,item3),...]

#len of result list and result list.
total = reduce(lambda x, y: x * y, map(len, lists))
retList = []

#every item of result list.
for i in range(0, total):
step = total
tempItem = []
for l in lists:
step /= len(l)
tempItem.append(l[i/step % len(l)])
retList.append(tuple(tempItem))

return retList

print myfunc(A,B,C)
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式