Može li ovako - napravi jednu funkciju GetHash(a,b) i onda je pozivaj:
hash = a < b ? GetHash(a,b) : GetHash(b,a)
Odnosno to raspoređivanje "manji pa veći" možeš da radiš unutar same funkcije.. I tako onda možeš da imaš jedan 64-bitni broj koji je uvek isti za ulaz (a,b) i (b,a) i onda računaš hash za njega.
Inače, algoritam za samu hash funkciju bi trebao da nađeš bez većih problema. Ako ne budeš imao uspeha, javi.