Return a list containing all pairs of distinct elements that satisfy the function fn. Note that the pair [1, 1] should never be included in the final pairing since its elements are not distinct.
For example, all the possible pairs with disinct elements of [1, 2, 3] are [1, 2], [1, 3], [2, 1], [2, 3], [3, 1], [3, 2] but only [1, 2], [2, 1], [2, 3], [3, 2] satisfy the condition that the sum of their elements is odd.