def CartProd(lists): if len(lists) == 1: return lists[0] else: return [[a] + ToList(b) for a in lists[0] for b in CartProd(lists[1:])] def ToList(l): if type(l) == type(int()): return [l] else: return l