How to find all permutations (with repetition) in MATLAB?

mina mohamadi picture mina mohamadi · Sep 3, 2013 · Viewed 18k times · Source

Suppose I have 4 letters and I want to arrange them in 3 places (repetition allowed), so I would have 43=64 possible permutations. How can I compute and print them?

Answer

Eitan T picture Eitan T · Sep 3, 2013

Simplifying Amro's answer, you could use this:

%// Sample data
x = 'ABCD';                 %// Set of possible letters
K = 3;                      %// Length of each permutation

%// Create all possible permutations (with repetition) of letters stored in x
C = cell(K, 1);             %// Preallocate a cell array
[C{:}] = ndgrid(x);         %// Create K grids of values
y = cellfun(@(x){x(:)}, C); %// Convert grids to column vectors
y = [y{:}];                 %// Obtain all permutations

Matrix y should store the permutations you're after.