## Thursday, August 4, 2016

### Print all n-digit strictly increasing numbers - GeeksforGeeks

Print all n-digit strictly increasing numbers - GeeksforGeeks
Given number of digits n in a number, print all n-digit numbers whose digits are strictly increasing from left to right.

The idea is to use recursion. We start from the leftmost position of a possible N-digit number and fill it from set of all digits greater than its previous digit. i.e. fill current position with digits (i to 9] where i is its previous digit. After filling current position, we recurse for next position with strictly increasing numbers.
`void` `findStrictlyIncreasingNum(``int` `start, string out, ``int` `n)`
`{`
`    ``// If number becomes N-digit, print it`
`    ``if` `(n == 0)`
`    ``{`
`        ``cout << out << ``" "``;`
`        ``return``;`
`    ``}`

`    ``// start from (prev digit + 1) till 9`
`    ``for` `(``int` `i = start; i <= 9; i++)`
`    ``{`
`        ``// append current digit to number`
`        ``string str = out + to_string(i);`

`        ``// recurse for next digit`
`        ``findStrictlyIncreasingNum(i + 1, str, n - 1);`
`    ``}`
`}`