def primes(N):
 return reduce((lambda r,x: r-set(range(x**2,N,x)) if (x in r) else r), 
               range(2,N), set(range(2,N)))

print( sorted( list( primes( 10000)))[-2:] )

# 10k:  time: 0.14s    memory: 5112 kB
# 20k:  time: 0.50s    memory: 5204 kB 
# 40k:  time: 1.44s    memory: 5708 kB
# 100k: time: 10.46s   memory: 7124 kB     n^2.2