Generate Keyboard Friendly Numbers
Pyth, 27 24 bytes

uf!f/h-FY3.:metsd`T2hGQ0


Demonstration.

Improvements to the original:


Using metd, instead of .r ... _UJ: 2 less bytes. 1 direct, 1 for not having to use J.
Using s and `T instead of JT10: 1 less byte.




We start with the string representation of a number: `T.

Then, we convert the string to a list of digits, and rotate the digits digits backwards by one, (9876543210) with metsd. Then, we take the 2 element subsequences with .: ... 2. These subsequences are filtered on /h-FY3. This expression corresponds to ((a-b)+1)/3, which is zero if and only if the difference between a and b is at most 1. Thus, the filtered list will be empty if and only if the number is keyboard friendly. With !, the result is true only if the number is keyboard friendly.

f ... hG filters upwards from G+1 until the result is true, giving the first keyboard friendly number at G+1 or above. u ... Q0 applies this function to its own output Q times, starting from 0, where Q is the input. This gives the Qth Keyboard Friendly Number, as desired.