Попарное сравнение чисел внутри массива Python

Написал вот это

i = 1;
A = [i for i in range(6)
     if i != 0];
print(*A);
i = 1;
B = [i for i in range(6)
     if i != 0];
print(*B);
i = 0
l = 0
data = []
value1 = 1
value2 = 1
while i < 5:
    for l in range(5):
        if A[i] != A[l]:value1 = A[i]
        value2 = A[l]
        data.append(value1)
        data.append(value2)
        if l == 4:
            i = i + 1
            l = 1
            
list = []
value3 = 0
i = 0
while i < len(data):
    if data[i] != data[i-1]:list.append(data[i])
    i = i + 1
print(*list)

нужно, чтобы на выходе мы получали список из уникальных пар чисел от 1 до 5, пример: 12 13 14 15 23 24 25 и т.д. пары по типу 11, 22 должны убираться(работает) пары по типу 12 21 считаются идентичными и должна оставаться только одна подобная пара(не работает) через циклы не выходит пытался рекурсией но практика в 7 часов python была против


Ответы (2 шт):

Автор решения: MaxU

Если я правильно понял условие задачи - вы можете воспользоваться itertools.combinations:

from itertools import combinations

res = [f"{a}{b}" for a,b in combinations(range(1, 6), 2)]

результат:

In [13]: res
Out[13]: ['12', '13', '14', '15', '23', '24', '25', '34', '35', '45']

PS по указанной ссылке вы можете найти реализацию функции combinations() на Python

→ Ссылка
Автор решения: Tehnorobot

Вот один из простых вариантов решения без доп. библиотек:

res = [f'{x}{y}' for x in range(1, 6) for y in range(1, 6) if x != y]

lst = []

for i in res:
    if i not in lst and i[::-1] not in lst: # проверка на уникальность в списке, в котором учитываются палиндромы
        lst.append(i)

for j in lst:
    print(j)
→ Ссылка