Whats the best way to sort a dataset into groups by using a facial recognition algorithm that compares only 2 images at a time?
So it appears you actually have vectors over $\mathbb{R}^n$, one vector per face, and you want to group the vectors, using $L_2$ distance (Euclidean distance) to measure similarity.

There are a number of techniques for this.  See data structures for nearest neighbor search (https://en.wikipedia.org/wiki/Nearest_neighbor_search).  I would suggest that locality sensitive hashing might be a promising choice for your situation.  You could also look into clustering algorithms (though they will probably still require nearest neighbor search as one step of their working).