需求如下,一个大列表里包含若干个小列表, 但事先不知道大列表内的小列表个数,求这个大列表的笛卡尔积
示例如下:
原始大列表: List = [['a', 'b'], ['c'], ['d', 'e']]
输出: ['a,c,d', 'a,c,e', 'b,c,d', 'b,c,e']
tr_l = []
def df(str1, num, l):
try:
l_d = l[num] #有没有到最后一个小列表,没有就继续向下走,到了就说明这一个组合完成
for i in l_d:
str_t = str1 + i + ','
df(str_t, num + 1, l)
except:
str_l.append(str1[0: -1])
return
if __name__ == '__main__':
td = [['a', 'b'], ['c'], ['d', 'e']]
num = 0
for i in td[0]:
str1 = i + ','
df(str1, num + 1, td)
print(str_l)