#Homework by Mike Murr #OK to post #HW5 PermuG := proc(n) local S, i, pi, pi1, L, j, i1, parity; option remember; if n = 0 then return [[]]; end if; S := PermuG(n - 1); L := []; parity := -1; for i to nops(S) do pi := S[i]; if parity = 1 then for j to n do pi1 := [op(1 .. j - 1, pi), n, op(j .. nops(pi), pi)]; L := [op(L), pi1]; end do; parity := -parity; else for j from n by -1 to 1 do pi1 := [op(1 .. j - 1, pi), n, op(j .. nops(pi), pi)]; L := [op(L), pi1]; end do; parity := -parity; end if; end do; L; end proc; > PermuG(2); > PermuG(1); > PermuG(2); > PermuG(3); > PermuG(4); > PermuG(5); > ;