The language isn't a concern here, I'm trying to figure out how to go about this logically. Let say I have an array: [A] [C] [D] [E]...etc..etc.. with no top limits. How would you go about finding all variations of this array provided all of the array elements stay in order. ie: [A] [B] [C] [D] [A] [B] [C] [A] [B] [A] [C] [D] [E] [A] [D] [E] [A] [E] [A] [B] [E] [A] [D] [E] [A] [B] [C] [D] [E] Code (markup): etc. etc. Like I said I'm not looking for programming examples, just concepts on how to go about this.