Вы можете отсортировать кортежи и использовать set
для проверки на наличие дубликатов, так как кортежи являются хэшируемыми
a=[(-1, 0, 1) ,(-1, 1, 0), (-1, 2, -1) ,(-1, -1, 2), (0, 1, -1)]
my_set=set()
res=[]
for original_value, sorted_value in zip(a,map(sorted,a)):
if tuple(sorted_value) not in my_set:
res.append(original_value)
my_set.add(tuple(sorted_value))
Выход
[(-1, 0, 1), (-1, 2, -1)]
Можно использовать defaultdict
from collections import defaultdict
d=defaultdict(list)
a=[(-1, 0, 1) ,(-1, 1, 0), (-1, 2, -1) ,(-1, -1, 2), (0, 1, -1)]
res=[]
for original_value, sorted_value in zip(a,map(sorted,a)):
d[tuple(sorted_value)].append(original_value)
Выход:
{
(-1, -1, 2): [(-1, 2, -1), (-1, -1, 2)],
(-1, 0, 1): [(-1, 0, 1), (-1, 1, 0), (0, 1, -1)]
}