I have a 1D array that is my “dictionary”. E.g.,
d = ['a', 'b', 'c']
I want to generate all possible codewords of length n
composed of elements from d
. For example, if n = 2
, then the output I expect is
['a', 'a']
['a', 'b']
['a', 'c']
['b', 'a']
['b', 'b']
['b', 'c']
['c', 'a']
['c', 'b']
['c', 'c']
I’ve come up with the following code for this.
d = ['a', 'b', 'c']
n = 2
codeword = fill(' ', n)
for i in 0:length(d)^n - 1
for k in 0:n-1
codeword[k+1] = d[(i÷(length(d)^k))%length(d) + 1]
end
println(codeword)
end
Is there a more elegant way to do this? Or perhaps there exists a function in any of the packages that could do this?