順列の半分

import itertools
data = list(itertools.permutations([1,2,3,4,5]))

n = len(data) // 2

d1 = data[:n]       #リストの上半分
d2 = data[n::-1]    #リストの下半分の逆順
d2.sort()           #ソート

for x, y in zip(d1, d2):
    print(x, y, end = ' ')
    if x == y:
        print('true')

順列の半分だけ計算して逆順にすれば半分の計算量でできそう
奇数個の場合はどうすればいい