Generate unique triplets from source and labels tensor list

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.