Попробовал сделать тоже самое на pyton по совету lyeskin , возможно неправильно. Результат получше, конечно, но всё равно не назвал бы его удовлетворительным
import random
set1 = set()
set2 = set()
i = 0
while i < 400000:
set1.add(random.randint(1000000, 10000000))
set2.add(random.randint(1000000, 10000000))
i = i+1;
print set(set1).intersection(set2)