How to generate all possible X permutations of N characters with repetition in Python

1 Answer

0 votes
from itertools import product

N_characters = "abcmoy"
X = 3

for char_set in product(N_characters, repeat = X):
    print(char_set)
  
 
   
       
'''
run:
       
('a', 'a', 'a')
('a', 'a', 'b')
('a', 'a', 'c')
('a', 'a', 'm')
('a', 'a', 'o')
('a', 'a', 'y')
('a', 'b', 'a')
('a', 'b', 'b')
('a', 'b', 'c')
('a', 'b', 'm')
('a', 'b', 'o')
('a', 'b', 'y')
('a', 'c', 'a')
('a', 'c', 'b')
('a', 'c', 'c')
('a', 'c', 'm')
('a', 'c', 'o')
('a', 'c', 'y')
('a', 'm', 'a')
('a', 'm', 'b')
('a', 'm', 'c')
('a', 'm', 'm')
('a', 'm', 'o')
('a', 'm', 'y')
('a', 'o', 'a')
('a', 'o', 'b')
('a', 'o', 'c')
('a', 'o', 'm')
('a', 'o', 'o')
('a', 'o', 'y')
('a', 'y', 'a')
('a', 'y', 'b')
('a', 'y', 'c')
('a', 'y', 'm')
('a', 'y', 'o')
('a', 'y', 'y')
('b', 'a', 'a')
('b', 'a', 'b')
('b', 'a', 'c')
('b', 'a', 'm')
('b', 'a', 'o')
('b', 'a', 'y')
('b', 'b', 'a')
('b', 'b', 'b')
('b', 'b', 'c')
('b', 'b', 'm')
('b', 'b', 'o')
('b', 'b', 'y')
('b', 'c', 'a')
('b', 'c', 'b')
('b', 'c', 'c')
('b', 'c', 'm')
('b', 'c', 'o')
('b', 'c', 'y')
('b', 'm', 'a')
('b', 'm', 'b')
('b', 'm', 'c')
('b', 'm', 'm')
('b', 'm', 'o')
('b', 'm', 'y')
('b', 'o', 'a')
('b', 'o', 'b')
('b', 'o', 'c')
('b', 'o', 'm')
('b', 'o', 'o')
('b', 'o', 'y')
('b', 'y', 'a')
('b', 'y', 'b')
('b', 'y', 'c')
('b', 'y', 'm')
('b', 'y', 'o')
('b', 'y', 'y')
('c', 'a', 'a')
('c', 'a', 'b')
('c', 'a', 'c')
('c', 'a', 'm')
('c', 'a', 'o')
('c', 'a', 'y')
('c', 'b', 'a')
('c', 'b', 'b')
('c', 'b', 'c')
('c', 'b', 'm')
('c', 'b', 'o')
('c', 'b', 'y')
('c', 'c', 'a')
('c', 'c', 'b')
('c', 'c', 'c')
('c', 'c', 'm')
('c', 'c', 'o')
('c', 'c', 'y')
('c', 'm', 'a')
('c', 'm', 'b')
('c', 'm', 'c')
('c', 'm', 'm')
('c', 'm', 'o')
('c', 'm', 'y')
('c', 'o', 'a')
('c', 'o', 'b')
('c', 'o', 'c')
('c', 'o', 'm')
('c', 'o', 'o')
('c', 'o', 'y')
('c', 'y', 'a')
('c', 'y', 'b')
('c', 'y', 'c')
('c', 'y', 'm')
('c', 'y', 'o')
('c', 'y', 'y')
('m', 'a', 'a')
('m', 'a', 'b')
('m', 'a', 'c')
('m', 'a', 'm')
('m', 'a', 'o')
('m', 'a', 'y')
('m', 'b', 'a')
('m', 'b', 'b')
('m', 'b', 'c')
('m', 'b', 'm')
('m', 'b', 'o')
('m', 'b', 'y')
('m', 'c', 'a')
('m', 'c', 'b')
('m', 'c', 'c')
('m', 'c', 'm')
('m', 'c', 'o')
('m', 'c', 'y')
('m', 'm', 'a')
('m', 'm', 'b')
('m', 'm', 'c')
('m', 'm', 'm')
('m', 'm', 'o')
('m', 'm', 'y')
('m', 'o', 'a')
('m', 'o', 'b')
('m', 'o', 'c')
('m', 'o', 'm')
('m', 'o', 'o')
('m', 'o', 'y')
('m', 'y', 'a')
('m', 'y', 'b')
('m', 'y', 'c')
('m', 'y', 'm')
('m', 'y', 'o')
('m', 'y', 'y')
('o', 'a', 'a')
('o', 'a', 'b')
('o', 'a', 'c')
('o', 'a', 'm')
('o', 'a', 'o')
('o', 'a', 'y')
('o', 'b', 'a')
('o', 'b', 'b')
('o', 'b', 'c')
('o', 'b', 'm')
('o', 'b', 'o')
('o', 'b', 'y')
('o', 'c', 'a')
('o', 'c', 'b')
('o', 'c', 'c')
('o', 'c', 'm')
('o', 'c', 'o')
('o', 'c', 'y')
('o', 'm', 'a')
('o', 'm', 'b')
('o', 'm', 'c')
('o', 'm', 'm')
('o', 'm', 'o')
('o', 'm', 'y')
('o', 'o', 'a')
('o', 'o', 'b')
('o', 'o', 'c')
('o', 'o', 'm')
('o', 'o', 'o')
('o', 'o', 'y')
('o', 'y', 'a')
('o', 'y', 'b')
('o', 'y', 'c')
('o', 'y', 'm')
('o', 'y', 'o')
('o', 'y', 'y')
('y', 'a', 'a')
('y', 'a', 'b')
('y', 'a', 'c')
('y', 'a', 'm')
('y', 'a', 'o')
('y', 'a', 'y')
('y', 'b', 'a')
('y', 'b', 'b')
('y', 'b', 'c')
('y', 'b', 'm')
('y', 'b', 'o')
('y', 'b', 'y')
('y', 'c', 'a')
('y', 'c', 'b')
('y', 'c', 'c')
('y', 'c', 'm')
('y', 'c', 'o')
('y', 'c', 'y')
('y', 'm', 'a')
('y', 'm', 'b')
('y', 'm', 'c')
('y', 'm', 'm')
('y', 'm', 'o')
('y', 'm', 'y')
('y', 'o', 'a')
('y', 'o', 'b')
('y', 'o', 'c')
('y', 'o', 'm')
('y', 'o', 'o')
('y', 'o', 'y')
('y', 'y', 'a')
('y', 'y', 'b')
('y', 'y', 'c')
('y', 'y', 'm')
('y', 'y', 'o')
('y', 'y', 'y')
 
'''

 



answered Oct 2, 2021 by avibootz
...