compact context free expression for permutation This may sound like theoretically void question, because certainly permutation is expressible even on the lowest level of Chomsky hierarchy:

P -&gt; a b c
  |  a c b
  |  b a c
  |  b c a
  |  c a b
  |  c b a


In practice, however, proposition that the only way to describe SQL syntax is permuting "where", "group by", "having" (and many more similar clauses in some SQL dialects) is silly.

Boolean grammars allow succinct expression for permutation 

X -&gt; a
   | b
   | c

Y -&gt; 
   | X

P -&gt; X X X &amp; - Y a Y a Y &amp; - Y b Y b Y &amp; - Y c Y c Y


but perhaps there is a way to do it in the context free realm too?
Using the method in this answer one can show that the smallest context-free grammar for all permutation of $n$ symbols has exponential size in $n$.