Попробуйте использовать набор, чтобы отслеживать, какие списки вы видели:
from collections import Counter
a = [[1, 2], [1, 3], [2, 1], [2, 3], [3, 1], [3, 2], [1, 2, 1]]
seen = set()
result = []
for lst in a:
current = frozenset(Counter(lst).items())
if current not in seen:
result.append(lst)
seen.add(current)
print(result)
Какие выходы:
[[1, 2], [1, 3], [2, 3], [1, 2, 1]]
Примечание: Поскольку списки не могут хешироваться, вы можете хранить замороженные объекты из Counter
объектов, чтобы обнаруживать порядок меньше дубликатов. Это устраняет необходимость сортировки вообще.