Given a list of variables, construct every term comprising only those
variables; function pepper() returns a free algebra object
equal to the sum of these terms.
The function is named for a query from an exam question set by Sarah
Marshall in which she asked how many ways there are to arrange the
letters of word “pepper”, the answer being \(\left({6\atop
1\,2\,3}\right)=\frac{6!}{1!2!3!}=60\).
Function multiset() in the partitions package gives
related functionality.