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
class Solution:
    def numsSameConsecDiff(self, n, k):
        d = {}
        for i in range(10):
            temp = set()
            if i + k <= 9:
                temp.add(i + k)
            if i - k >= 0:
                temp.add(i - k)
            d[i] = list(temp)


        res = []
        for i in range(1, 10):
            for neighbor in d[i]:
                res.append([i, neighbor])

        if n > 2:
            n -= 2
            while n > 0:
                temp = []
                for sublist in res:
                    for neighbor in d[sublist[-1]]:
                        temp.append(sublist + [neighbor])
                n -= 1
                res = temp
        for i in range(len(res)):
            res[i] = int(''.join(str(ele) for ele in res[i]))


        return res
class Solution:
    def numsSameConsecDiff(self, n, k):
        d = {}
        for i in range(10):
            temp = set()
            if i + k <= 9:
                temp.add(i + k)
            if i - k >= 0:
                temp.add(i - k)
            d[i] = list(temp)


        res = []
        for i in range(1, 10):
            for neighbor in d[i]:
                res.append([i, neighbor])

        if n > 2:
            n -= 2
            while n > 0:
                temp = []
                for sublist in res:
                    for neighbor in d[sublist[-1]]:
                        temp.append(sublist + [neighbor])
                n -= 1
                res = temp
        for i in range(len(res)):
            res[i] = int(''.join(str(ele) for ele in res[i]))


        return res