Function that allows you to generate ranges based on list of comma seperated tokens:
for example, tokens "a,b,c" with length 3 generate:
aaa,aab,aac,aba,abb,abc,aca,acb,acc,baa,bab,bac,bba,bbb,bbc,bca,bcb,bcc,caa,cab,cac,cba,cbb,cbc,cca,ccb,ccc
tokens "0,1" with length 4 generate:
0000,0001,0010,0011,0100,0101,0110,0111,1000,1001,1010,1011,1100,1101,1110,1111