需求如下,一个大列表里包含若干个小列表, 但事先不知道大列表内的小列表个数,求这个大列表的笛卡尔积
示例如下:
原始大列表: 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)