Identifying the Unique Sets of Pairs taken from a Set (Order not Important)
In your set of characters, each character would have 5 possible pairs if it isn't paired with itself: ab ac ad.... After you get all possible pairs for a, you can then move onto b, you would loop through the list once again but this time omitting the a as ab has already been found. You can repeat this and each time omitting the letters before itself until you are on the last letter. After this to get your 'sets of pairs', you can just loop through your pairs and adding them to a new list.
Eventually I hope to build an algorithm in Python to do this (I'm newer to the language), but I'm hoping to find a direction of a study to help me understand the ideas behind it—I can tell at least it's related to combinatorics.
If we had six elements, {a, b, c, d, e, f}, we can identify 15 different pairs that could be made where order doesn't matter (n = 6, k = 2, combination).
They'd be:
ab, ac, ad, ae, af,
bc, bd, be, bf, cd,
ce, cf, de, df, ef
However, what I'm interested in doing is identifying the different sets of pairs. Brute force, they seem to be:

{ab, cd, ef}
{ab, ce, df}
{ab, cf, de}
{ac, bd, ef}
{ac, be, df}
{ac, bf, de}
{ad, bc, ef}
{ad, be, cf}
{ad, bf, ce}
{ae, bc, df}
{ae, bd, cf}
{ae, bf, cd}
{af, bc, de}
{af, bd, ce}
{af, be, cd}

Presuming no error on my part, there'd also be 15 lists, with 3 (or n/2) pairs/entries, where the order of pairings and the order within pairings doesn't matter. As noted, I'm hoping to eventually create some code that would construct these lists of pairs.
Starting points are appreciated!