Я думаю, что вы ищете это то, что вы написали, itertools.product
itertools.product((*[['a1','a2','a3'], ['b1', 'b2'], ['c1', 'c2', 'c3', 'c4']])) # ->
"""
[('a1', 'b1', 'c1'),
('a1', 'b1', 'c2'),
('a1', 'b1', 'c3'),
('a1', 'b1', 'c4'),
('a1', 'b2', 'c1'),
('a1', 'b2', 'c2'),
('a1', 'b2', 'c3'),
('a1', 'b2', 'c4'),
('a2', 'b1', 'c1'),
('a2', 'b1', 'c2'),
('a2', 'b1', 'c3'),
('a2', 'b1', 'c4'),
('a2', 'b2', 'c1'),
('a2', 'b2', 'c2'),
('a2', 'b2', 'c3'),
('a2', 'b2', 'c4'),
('a3', 'b1', 'c1'),
('a3', 'b1', 'c2'),
('a3', 'b1', 'c3'),
('a3', 'b1', 'c4'),
('a3', 'b2', 'c1'),
('a3', 'b2', 'c2'),
('a3', 'b2', 'c3'),
('a3', 'b2', 'c4')]
"""