各桁を並び替えてできる最大の数と
各桁を並び替えてできる最小の数(ただし、最高位は0以外にする)の差が
自身と一致するとき、高橋の数と呼びます。
http://masami.d2.r-cms.jp/blog_detail/blog_id=3&id=6

以下のコードで、9桁までの高橋の数を
求めようとしたのですが、
9桁の高橋の数の算出に何時間も
かかっています。
もっと高速に求める方法があれば、ご教示ください。

def takahashi_number(m)
  (10 ** (m - 1)..10 ** m - 1).each{|n|
    ary = n.to_s.split('').map(&:to_i)
    min_ary = ary.sort
    max = min_ary.reverse.join.to_i
    # 最高位を0以外にする←カプレカ数との違い
    i = 0
    while min_ary[i] == 0
      i += 1
    end
    min_ary[0], min_ary[i] = min_ary[i], min_ary[0]
    min = min_ary.join.to_i
    p [m, n] if n == max - min 
  }
end

(2..9).each{|m| takahashi_number(m)}

出力結果
[3, 495]
[4, 6174]
[6, 549945]
[6, 631764]
[6, 660852]
[8, 63317664]
[8, 66308652]
[9, 554999445]
[9, 864197532]

(追記)
(どの言語を用いるにせよ)今のところ、高橋の数は9の倍数であることと
yoh2さんのアイデアを用いていたコードが一番速いものと思われます。
このRuby版のコードを作ったので、回答に載せました。
皆様の参考になれば幸いです。