|
I think Mark's answer was correct given the example you initially gave. However, if you want to iterate over groups of dissimilar sets without hard coding the looping to a fixed 'n' then I think you're after something like a multi-dimension iterator. I wrote one for Java here: http://www.alexpooley.com/2007/02/06/iterating-permutations/ I'm pretty sure I have one for Ruby somewhere too. The basic mechanism in my implementation is just like a car's odometer, but instead of each set of digits being the digits 0-9 they can vary to be sets of anything. When the least significant set overflows, it increments the set to it's right to increment by one, and if that overflows, then it tells the set to it's right to increment, etc. I think if you imagine how a car odometer works you'll understand my code pretty quickly. Good luck! Alex Pooley (ABN: 47 643 918 301) Freelance Developer Mobile: 0438 313 337 Email: [email protected] Address: PO Box 17, Applecross, 6953 Western Australia |
BEGIN:VCARD VERSION:3.0 N:Pooley;Alex;;; FN:Alex Pooley EMAIL;type=INTERNET;type=HOME;type=pref:[email protected] TEL;type=WORK;type=pref:+61 08 6102 1155 TEL;type=CELL:0438 313 337 TEL;type=HOME:+61 08 9332 9006 TEL;type=WORK;type=FAX:+1 206 339 3423 item1.ADR;type=HOME;type=pref:;;PO Box 17;Applecross;WA;6953;Australia item1.X-ABADR:au PHOTO;BASE64: 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 X-ABUID:B8E55ECC-1062-43B3-AC4C-9068750D5D68\:ABPerson END:VCARD
On 31/03/2009, at 9:53 PM, Torm3nt wrote:
|
