各桁の数字がその桁の出現回数を表すような数を
Self-descriptive numberと呼びます。
http://en.wikipedia.org/wiki/Self-descriptive_number
以下のコードで、10桁までのSelf-descriptive numberを
求めようとしたのですが、
9桁、10桁のSelf-descriptive numberの算出に時間が
かかっています。
もっと高速に求める方法があれば、ご教示ください。

N = 10
(1..N).each{|b|
  (0..b - 1).to_a.repeated_permutation(b){|a|
    if a[0] > 0
      i = b - 1
      flag = true
      while i > -1 && flag
        if a.count(i) == a[i]
          i -= 1
        else
          flag = false
        end
      end
      p a.join.to_i if i == -1
    end
  }
}