Был бы более эффективный метод для этого?
Нет.
Будет 2 n-1 комбинаций, напримердля 6-значного числа 2 5 = 32 комбинации.
Подумайте об этом так: каждый «пробел» между цифрами может быть либо разделен, либо нет, истина / ложь, 1 /0, то есть «бит», поэтому вы можете определить комбинацию разделения, используя 5-битное число:
1 2 3 4 5 6
^ ^ ^ ^ ^
0 0 0 0 0 -> 123456
0 0 0 0 1 -> 12345,6
0 0 0 1 0 -> 1234,56
. . . .
1 1 1 1 0 -> 1,2,3,4,56
1 1 1 1 1 -> 1,2,3,4,5,6