1. Учим основы питона. Множество (set) всегда отсортировано, если создаётся из коллекции (в твоём случае — массива). И если ты сделаешь из него массив — он тоже будет отсортирован. Нет никакого смысла делать a.sort()
2. При увеличении k голова твоего массива "a" МОЖЕТ изменяться, потому что далеко не факт, что "f" и "c" попадут в хвост массива (из-за сортировки). Я даже могу пообещать тебе, что такого не будет, потому что "f" растёт медленней, чем "c". Поэтому при разном количестве шагов будут разные числа на позиции 6000
3. Если ты хочешь удалить дубли из массива без смены позиций — нельзя использовать set. Самый очевидный способ (но при этом очень медленный) — перегнать из одного массива в другой:
a = [7, 5, 7, 7, 1, 2, 3, 2]
b = []
for i in a:
if i not in b:
b.append(i)
Сложность такого подхода — O(n**2)
Сократить до O(n) можно использованием множества:
a = [7, 5, 7, 7, 1, 2, 3, 2]
b = []
s = set()
for i in a:
if i not in s:
b.append(i)
s.add(i)
Так как проверки по хэш-таблице в среднем за O(1), то ты получаешь линейную сложность
Доказательство того, что со множествами быстрее: