Поместите один из наборов в хеш-таблицу и переберите другой, отбрасывая элементы, которых нет в хеш-таблице. В качестве альтернативы сортируйте оба и выполняйте их одновременно, как в сортировке слиянием.
EDIT: последний метод создает отсортированный результат. Я должен добавить, что если наборы имеют разнородные размеры и они предварительно отсортированы (скажем, потому что вы делаете кучу пересечений), то вы можете добиться значительного улучшения производительности, используя «неограниченный» двоичный поиск, чтобы пропустить большой список.