How can I iterate over all disjoints pairs of pairs from `range(n)`?

For example, set n = 4. Then you would iterate over should be

> 
> [((0,1),(2,3)),((0,2),(1,3)), ((0,3),(1,2))]
> 
> 
> 

If `n=5` then you would iterate over

```
[((0,1),(2,3)), ((0,1),(2,4)), ((0,1),(3,4)), ((0,2),(1,3)),((0,2),(1,4)), ((0,3),(1,2)),  ((0,3),(1,4)), ((0,4),(1,2)), ((0,4), (1,3)), ((0,4),(2,3)) ...

```