/**
 * Print numbers with increasing digits
 * @author Prateek
 *
 */
 class IncreasingNumber {

	private static int count=0; 
	public static void main(String[] args) {

		IncreasingNumber obj=new IncreasingNumber();
		
		System.out.println("The numbers are :");
		obj.arrangeNum(3,5); // inclusive
		System.out.println("Total Numbers are : ");
		System.out.println(count);
		
	}

	//print increasing numbers within range of digits
	private void arrangeNum(int startRange , int endRange){

		if(startRange == endRange +1 )
			return ;

		arrangeNumUtil(startRange , 0);

		arrangeNum(startRange + 1 , endRange) ;
	}

    // Prints numbers with a given Number of digits
 	private void arrangeNumUtil(int numDigits , int currentNum ){

		int digit = (currentNum % 10) + 1;   //next digit from current Number
		currentNum *= 10;                  // move number to left
		for (; digit <= 9; digit++)
		{
			if (numDigits == 1){
				count++;
				System.out.println(currentNum + digit);
				return;
			}

			arrangeNumUtil(numDigits - 1, currentNum + digit);
		}
	}

}