Say you are running a promotional campaign and wanted to reward the 1000 user. How will you implement a counter for this so that only user is selected and should really be close to the 1000th user. Locking the counter may not work due to scalability. Given a random list of numbers, say 2345, find all the permutations of associated letters in a number pad. For example, 2 -> {a,b,c} and 3 -> {d,e,f}. So given, 23, find all the permutations of abc and def.