func countNumbersWithUniqueDigits(n int) int { // [0, 10^n) // 0 1 2 3 // 1 10 91 739 ... cnt := 1 for i, m, j := 1, 0, 0; i <= n && i <= 10; i, cnt = i+1, cnt+m { for m, j = 9, 1; j < i; j++ { m *= 10 - j } } return cnt }