import itertools
input = [['a', 'b'], ['c', 'd'], ['e', 'f']]
combs = []
for i in range(1, len(input) + 1):
    els = [list(itertools.chain.from_iterable(x)) for x in itertools.
        combinations(input, i)]
combs.extend(els)
import pprint
pprint.pprint(combs)
Python все комбинации списка списков