From: Alex Ciarlillo Date: 2007-07-23T13:52:08+09:00 Subject: array permutations The other day I ran into a problem where I needed all the permutations of a given array. I knew I had covered this in some of my CS classes but couldn't come up with the algorithm at first. I figured it out on the drive home from work and decided to rubify it and add it as a method to the array class. This is what I came up with and was just wondering if anyone else had a cleaner or more effecient way of accomplishing this. class Array def each_perm if self.size == 1 yield self else self.each_index do |i| tmp, e = self.dup, self[i] tmp.delete_at(i) tmp.each_perm do |x| yield e.to_a + x end end end end end --AC -- Posted via http://www.ruby-forum.com/.