O segredo está em não tentar todas as possibilidades. Basta testar os números ímpares de 3 até a raiz quadrada do N (N=600851475143)
import math
lista = []
n = 600851475143
raiz_quadrada = int(math.sqrt(n))
# intercala de dois em dois pq precisamos verificar apenas os números ímpares
for number in range(3, raiz_quadrada + 1, 2):
while n % number == 0: # Significa que "n" é divisível por "number"
n = int(n / number)
lista.append(number)
print(lista)