Rearranging the letters of a word


#1

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.


#2

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”]