странно видеть соревнования в изяществе кода и "крутости" алгоритма там, где важна скорость. самый лучший вариант - это загнать все в таблицы. и тогда функция определения комбинации не важна, ни ее скорость ни ее изящество.
моя функция определяет 140млн 5ти картрочных комбинаций в секунду, и так же способна определить 20 млн в сек мо игры 5ти карточной комбинации против изветсной карты дилера, с учетом вышедших карт.
все строится на выборках из заранее просчитанных таблиц.