AO
но тогда то, что я писал выше, вполне логично укладывается в решение твоей задачи...
у тебя есть from и to, это идентификаторы отправителей/получателей, вместе это идентификатор диалога,
set(('a', 'b')) == set(('b', 'a')), то есть тут не важно, в какой они будут последовательности, если поместить их в set(), ведь в set'е нет порядка... то есть сделай dialog_id = set(from, to), сохранив сортировку списка на первом шаге, а потом убери дубликаты по dialog_id (тебе будет нужно или самое первое значение или самое последнее с данным dialog_id в зависимости от сортировки)