Использовать множества (set). В множестве все элементы уникальны.
mylist = [1,2,1,3,2,4]
myset = set(mylist)
print(myset)
# {1,2,3,4}
Таким образом, чтобы проверить, есть ли повторы, нужно сравнить длину изначального списка и множества от этого списка.
И для создания изначально уникальных чисел можно сразу использовать random.sample. Он из указанной последовательности выберет N уже уникальных значений.
mylist = random.sample(range(1, 40001), 47)