I have a list. It contains x lists, each with y elements.
I want to pair each element with all the other elements, just once, (a,b = b,a)
EDIT: this has been criticized as being too vague.So I’ll describe the history.
My function produces random equations and using genetic techniques, mutates and crossbreeds them, selecting for fitness.
After a number of iterations, it returns a list of 12 objects, sorted by fitness of their ‘equation’ attribute.
Using the ‘parallel python’ module to run this function 8 times, a list containing 8 lists of 12 objects (each with an equation attribute) each is returned.
Now, within each list, the 12 objects have already been cross-bread with each other.
I want to cross-breed each object in a list with all the other objects in all the other lists, but not with the objects within it’s own list with which it has already been cross-bread. (whew!)
itertools.productis your friend.about removing the duplicates, try with a set of sets.
Now it’s a little bit clearer what you want:
basically, take all the 2-combinations of families (of those produced in parallel) and for each pair of families, yield all the pairs of elements.