code ChOut=8, CrLf=9; def N=4; \number of objects (letters) char S0, S1(N); proc Permute(D); \Display all permutations of letters in S0 int D; \depth of recursion int I, J; [if D=N then [for I:= 0 to N-1 do ChOut(0, S1(I)); CrLf(0); return; ]; for I:= 0 to N-1 do [for J:= 0 to D-1 do \check if object (letter) already used if S1(J) = S0(I) then J:=100; if J<100 then [S1(D):= S0(I); \object (letter) not used so append it Permute(D+1); \recurse next level deeper ]; ]; ]; [S0:= "rose "; \N different objects (letters) Permute(0); \(space char avoids MSb termination) ]