Ok, I understand the brute force approach is np-stupid and the short-cut for the full dataset is really easy. FINE, but I'm still struggle with my np-stupid implementation. 😂

So, in Python, given two lists:
[A,B,C]
[1,2,3,4,5]

I need an operation that will produce something like:
[
( (A,1),(B,1),(C,1) ),
( (A,1),(B,1),(C,2) ),
.....and so on, up to ...
( (A,5),(B,5),(C,5) )
]

I've gone through itertools but I don't see the tools I need. Am I missing something?

@adw99 Sorry for the delay. Something like this?

from itertools import product

list1 = list('ABC')
list2 = list(range(1,6))

print(list(product(*[product(list1[i],list2) for i in range(3)])))