Вы вот здесь делаете присвоение.
n = h
n.remove(n[j])
if h[j] not in n:
print(h[j])
В питоне переменные работают не так как в других языках программирования. n и h - это после присвоения два имени одного и того же объекта (списка). Удаляя из него элемент вы тут же его пытаетесь получить в этом же объекте из под другого имени.
Вместо присвоения такого, делайте так:
n = h[:]
Это скопирует список, а не создаст еще одно имя старому.