def powerset(iterable):
    """powerset minus the empty element"""
s = list(iterable)
return chain.from_iterable(combinations(s, r) for r in range(1, len(s) + 1))
print([list(chain.from_iterable(c)) for c in product(*(powerset(x) for x in L))
    ])
combinations of elements of different tuples in the list