Такие задачи считаются не циклическим перебором, а скорее рекурсивно. к примеру у нас есть точка входа -
мы первым делом перебираем все возможные переходы - получаем следующие 2-3 цифры и по факту имеем еще 2-3 точки входа, от которых считаем все следующие возможные переходы. И так проваливаемся пока не досчитаем до седьмой точки. К Примеру : 1 -6,8; 16 - 7,1 : 18 - 1,3 ; 167 - 2,6 и т.д. пока не получим строчку из 7. Для оптимизации строим двумерный массив одно измерение которого - номера на телефоне, а другое - массив возможных переходов