# Iterate through Array?

I've been messing around with generating all possible combinations of a set of letters, (Ala, a 6 letter set would start enumerating at "aaaaaa" then move on to "aaaaab" so on and so forth, all the way down to "zzzzz") by iterating through an array using slice() , Which is a pretty good implementation for small tasks, But suppose I wanted to generate larger sets, Is there a more efficient implementation than say

a=0
b=0
c=0
d=0
e=0
f=0
z = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]

slice = z.slice(a) + z.slice(b) + z.slice(c) + z.slice(d) + z.slice(e) + z.slice(f)

if...
else.... [Incrementing]

puts slice

Zephyr Pellerin wrote:

I've been messing around with generating all possible combinations of a
set of letters, (Ala, a 6 letter set would start enumerating at "aaaaaa"
then move on to "aaaaab" so on and so forth, all the way down to
"zzzzz")

("aaaaaa".."zzzzzz").each do |string|
puts string
end

This will run for a good while, but it won't hog memory the way a solution
populating an array would.

HTH,
Sebastian

···

--
NP: Lake of Tears - Sweetwater
Jabber: sepp2k@jabber.org
ICQ: 205544826

What about something as simple as

i = 0
"aaaaa".upto("zzzzz") {|s| i += 1; puts "#{i}. #{s}"}

You could write to a file if you wish. Note that "aaaaa".upto("zzzzz")
is NOT the same as "a".upto("zzzzz")

···

--
Posted via http://www.ruby-forum.com/.

You might also try the Permutations gem at http://permutation.rubyforge.org/

Sebastian Hungerecker wrote:

Zephyr Pellerin wrote:

I've been messing around with generating all possible combinations of a
set of letters, (Ala, a 6 letter set would start enumerating at "aaaaaa"
then move on to "aaaaab" so on and so forth, all the way down to
"zzzzz")

("aaaaaa".."zzzzzz").each do |string|
puts string
end

This will run for a good while, but it won't hog memory the way a solution populating an array would.

HTH,
Sebastian

Impressive, Signifigantly less RAM usage.

You might also try the Permutations gem ...

Or use the Combinatorial Object Server and the Hpricot gem. Pass in your parameters for the combinatorial object and scrape your results out of the table cells. I don't believe there is an API for the COS but scraping the hrml results is quite easy.

Combinatorial Object Server
http://theory.cs.uvic.ca/root.html