Print numbers from 1 to the largest number with N digits by recursion.

public class Solution {
    /**
     * @param n: An integer.
     * return : An array storing 1 to the largest number with n digits.
     */
    public static List<Integer> numbersByRecursion(int n) {
        // write your code here
        List<Integer> result = new ArrayList<Integer>();
        if (n <= 0) return result;

        result.add(0);//帮忙生成10, 20, 30....
        int base = 1;
        for (int i = 1; i <= n; i++) {
            int size = result.size();
            for (int k = 1; k <= 9; k++) {
                for (int j = 0; j < size; j++) {
                    //result.add(base); 0 + base * k !!
                    result.add(result.get(j) + base * k);
                }
            }
            base *= 10;
        }
        result.remove(0);
        return result;
    }
}