int[] helper(int[] digits, int pos) {
        if (digits[pos] + 1 < 10) {
            digits[pos] = digits[pos] + 1;
            return digits;
        }
        if (pos > 0 && digits[pos] + 1 == 10) {
            digits[pos] = 0;
            return helper(digits, pos - 1);
        } else {
            int n = digits.length;
            int[] newDigits = new int[n + 1];
            newDigits[0] = 1;
            return newDigits; // 99999 => 100000
        }
    }