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
}