rearranging the letters of a word

Hello there,

     I have to rearrange the letters of a word in all possible ways in my rails application.I am not getting the exact way doing so, please can anybody help me in developing that logic.

Thank you in advance.

# Based on: # http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/139290 # Author: Endy Tjahjono

class String    def perm        return [self] if self.length < 2        ret =

       0.upto(self.length - 1) do |n|           #rest = self.split('')           rest = self.split(//u) # for UTF-8 encoded strings           picked = rest.delete_at(n)           rest.join.perm.each { |x| ret << picked + x }        end

       ret    end end

p "abc".perm #=> ["abc", "acb", "bac", "bca", "cab", "cba"]