Share my recursive python solution.
Try to start from 1, then try 10 , 100....
If multi 10 exceed the limitation, try to add 1 and the backward.
In the add 1 step, if I don't set base to limit the range to 10, it would step over.
such as n = 11, without
base limitation would return [1,10,11,2,3,4,5,6,7,8,9,
class Solution(object): def lexicalOrder(self, n): """ :type n: int :rtype: List[int] """ ans =  recur(ans, n, 1, 0); return ans def recur(ans, n, temp, base): if(temp%10 == 0): base = temp ans.append(temp); if(temp*10 <= n): recur(ans, n, temp*10, base) if(temp+1 <= n and temp+1 < base+10): recur(ans, n, temp+1, base)