An unrestricted grammar for L = {w in {a,b,c}*: w has the same number of a's, b's, and c's}
First create an equal number of A's, B's, and C's without regard to order.
Then let them rearrange themselves arbitrarilly.
Then let each A, B, and C turn into the corresponding terminal.
S --> A B C S | e // Create an equal number of A, B, C
A B --> B A // Let them rearrange themsleves any old way
A C --> C A
B A --> A B
B C --> C B
C A --> A C
C B --> B C
A --> a // Replace each variable by the corresponding terminal
B --> b
C --> c