Удивительно, но PARI/GP перебирает все числа всего за 3 секунды.
Вот все 20 чисел на 11 сольдо:
(Оффтоп)
157248396
157248963
396157248
396481572
396487215
396572481
396724815
572481396
572481639
572481693
572481963
724815396
724815639
724815693
724815963
963157248
963248157
963248751
963572481
963724815
Функция
soldo берет на вход вектор (массив) из чисел и считает сольдо
soldo(v)=my(c=0);for(i=1,#v-1,num=10*v[i]+v[i+1];if(num%3==0,c=c+1);if(num%8==0,c=c+1));return(c)Функция
forperm встроенная -- перебирает все перестановки. Ну и печатает те, для которых дают больше 10 сольдо:
forperm(9,p,if(soldo(p)>10,print(fromdigits(Vec(p)))))