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