Ruby Sets Look Alike

Here's a small example of ruby sets that I picked up. Fun but actually useful if abstracted for other applications. One thing to note, it only contains half the alphabet so you'll only be able to create cases with the letters provided. Do yourself a favour and have some fun filling out the rest of the letters. Then you can talk in l33t c0d3 with your friends.

LOOKALIKES = [['A','4'],['B','8'],['T','7'],['H','77'],['S','5'],['E','3'],['O','0'],['I','1'],['L','1']]

  def create_lookalike_set(word)
    set = []
    LOOKALIKES.each do |l|
      for i in 0..word.length
        r = word.dup
        s = r[i,1].sub!(l[0],l[1])
        unless s.nil? 
          r[i,1] = s
        end
        unless r.eql? word or set.include? r
          set << r
        end
      end
    end
    set.dup.each {|w| set.concat(create_lookalike_set(w))}
    set
  end