mmmhhh, caso complejo...
veo que estas claves tienen todas 6 caracteres cierto?, las almacenas sin espacios? supongo que sería lo mejor.
Ahora, no veo viable hacer arreglos mediante split por la gran cantidad de memoria que ocuparías, pero, de las comparaciones en el caso extremo no veo que nadie te pueda salvar, lo que yo haría es crear una función que mediante mid, utilice el incremental de 6 para cortar cada uno de los fragmentos y hacer dichas comparaciones, incluso para optimizarla podrías hacer una recursiva en lugar de cíclica...aunque bueno, quizás la funución sea lo de menos
No veo que otra cosa sería mas adecuada para optimizar esto...
Salu2,