Consider I have a dict holding n different types represented by keys:x1, x2 ..xn
For simplicity let\'s take a small example:
{\"x1\":[\"
You can use product
from itertools
module within a comprehension:
from itertools import product
a = {"x1":["foo1", "goo1" ,"doo1"], "x2":["foo2","goo2"]}
final = [{i:j for i, j in zip(a.keys(), k)} for k in product(*a.values())]
# Or:
# final = [dict(zip(a.keys(), k)) for k in product(*a.values())]
# Or:
# final = list(map(lambda x: dict(zip(a.keys(), x)), product(*a.values())))
print(final)
Output:
[{'x1': 'foo1', 'x2': 'foo2'},
{'x1': 'foo1', 'x2': 'goo2'},
{'x1': 'goo1', 'x2': 'foo2'},
{'x1': 'goo1', 'x2': 'goo2'},
{'x1': 'doo1', 'x2': 'foo2'},
{'x1': 'doo1', 'x2': 'goo2'}]