I was wondering if there was an external lib or a built-in to generate unique triplets from two lists. So, I have two lists like so (the elements of the source list are PyTorch tensors - I have abstracted it out here as  just numbers):
source_list=[1,2,3,4,5,6,7,8..] # size N
labels_list=[1,1,0,2,1,3,6..] # size N

and I would like triplets of form:
<anchor> <postive> <negative>

where,  <anchor>  can be any element in the  source_list ,  postive  means that this element should come from the same label as the anchor(so, 1,2 and 1,5 could be seen as postive pairs in the triplet) and  negative' s mean that they should be from a different label (so, 1,3 and 1,4 would be considered a negative pair of the triplet). So, some examples of the correct triplet would be:
1, 2, 3
1, 2, 4
1, 2, 6

From the outset it seems like a  N choose k  problem, but I am not sure how to approach this with minimal computational cost other than doing loops with each element in python.