human
I found an interesting problem on https://leetcode.com/problems/numbers-with-same-consecutive-differences/:
Return all non-negative integers of length n such that the absolute difference between every two consecutive digits is k.
Note that every number in the answer must not have leading zeros except for the number 0 itself. For example, 01 has one leading zero and is invalid, but 0 is valid.
You may return the answer in any order.
 
Example 1:
Input: n = 3, k = 7
Output: [181,292,707,818,929]
Explanation: Note that 070 is not a valid number, because it has leading zeroes.

Example 2:
Input: n = 2, k = 1
Output: [10,12,21,23,32,34,43,45,54,56,65,67,76,78,87,89,98]

Example 3:
Input: n = 2, k = 0
Output: [11,22,33,44,55,66,77,88,99]

Example 4:
Input: n = 2, k = 1
Output: [10,12,21,23,32,34,43,45,54,56,65,67,76,78,87,89,98]

Example 5:
Input: n = 2, k = 2
Output: [13,20,24,31,35,42,46,53,57,64,68,75,79,86,97]

 
Constraints:

2 <= n <= 9
0 <= k <= 9

I tried it in Python, but could not do it. Can you solve it?
assistant
#Here is the Python code you requested.

class Solution:
    def numsSameConsecDiff(self, N: int, K: int) -> List[int]:
        
        def dfs(N, K, digit, rst):
            if not N: 
                rst.append(int(''.join(map(str, digit)))); return
            if digit[-1] + K <= 9: 
                dfs(N-1, K, digit + [digit[-1] + K], rst)
            if digit[-1] - K >= 0: 
                dfs(N-1, K, digit + [digit[-1] - K], rst)
        
        if N == 1: return list(range(10))
        if K == 0: return [int(str(i) * N) for i in range(1, 10)]
        rst = []
        for i in range(1, 10):
            dfs(N-1, K, [i], rst)
        return rst