if using python 3.7+ you can use order-preserving feature of dicts. Before 3.6 dicts were unordered. In 3.6. order was preserved as implementation feature (should not be relied upon)
import itertools as it # assume using python 3.7+ my_dict = {'item1':['A', 'B'], 'item2':['C', 'D'], 'item3':['E','F']} combinations = it.product(*my_dict.values()) for i, item in enumerate(combinations): print(f'array {i}:') for key, value in zip(my_dict.keys(), item): print(f'\t{key} ==> {value}')alternative approach would be to transform your dict
import itertools as it # assume using python 3.7+ my_dict = {'item1':['A', 'B'], 'item2':['C', 'D'], 'item3':['E','F']} my_list = [[(key, value2) for value2 in value] for key, value in my_dict.items()] combinations = it.product(*my_list) for i, item in enumerate(combinations): print(f'array {i}:') for key, value in item: print(f'\t{key} ==> {value}')in both cases output is
Output:array 0:
item1 ==> A
item2 ==> C
item3 ==> E
array 1:
item1 ==> A
item2 ==> C
item3 ==> F
array 2:
item1 ==> A
item2 ==> D
item3 ==> E
array 3:
item1 ==> A
item2 ==> D
item3 ==> F
array 4:
item1 ==> B
item2 ==> C
item3 ==> E
array 5:
item1 ==> B
item2 ==> C
item3 ==> F
array 6:
item1 ==> B
item2 ==> D
item3 ==> E
array 7:
item1 ==> B
item2 ==> D
item3 ==> F
This is just basic example, build upon it to get output in desired format
If you can't explain it to a six year old, you don't understand it yourself, Albert Einstein
How to Ask Questions The Smart Way: link and another link
Create MCV example
Debug small programs
How to Ask Questions The Smart Way: link and another link
Create MCV example
Debug small programs