Given a pandas DataFrame x of dimensions n x k, how can we efficiently generate a DataFrame y of dimensions (n over 2) x 2k, whose rows are all possible combinations of rows pairs of rows from x? For example, if x is
[[1 11],
[2,22],
[3,33],
[4,44]]
then y should be
[[1,11,2,22],
[1,11,3,33],
[1,11,4,44],
[2,22,3,33],
[2,22,4,44],
[3,33,4,44]]