Generate me some appropriate license plates! The scenario: You are a software designer working for a gov't-run company that designs license plates for cars and other vehicles. You've been asked to develop software that generates license plates. Before you got to work, your bosses laid down these ground rules.



A license plate cannot contain:


ASS
666
69&lt;any number here&gt;
&lt;any number here&gt;69
KKK
SHT


Rules and requirements:


License plate must be randomly generated.
Once a random license plate is generated, the same license plate cannot be generated again.
You must output at least 200 unique license plates. You can generate more if you want to.
You may store generated plates in a file to "remember" them.
The license plate contains 2 sections, one containing only three letters, and one containing only three numbers, separated by a dash, like this: 233-ADF or ADF-233.
You can only use numbers and capital letters.
License plates can be written to stdout, or a file.
Each "side" of a license plate will contain either three numbers or letters.
This is a code-golf, so shortest, most popular, answer wins. Winner will be chosen after seven days.


General rules


Answer should include, but not limited to, the following.
Language name.
Character count.
File size.
How the code is run.
The code itself.
Example: Python 234 chars or Python 23mb.




If I need to clarify any additional details, please mention it in the comments and I will add it to my post. Anyways, good luck, and generate me some appropriate license plates!



Update 1: Winner will be chosen slightly earlier.

Turns out I have to go on a trip soon, so I will be choosing a winner around 00:00 UTC, July 25. After the winner is chosen, you can still submit entires, just know that a winner has been chosen. Bai.



Update 2: Winners!

We have winners! Yay! Cheese and wine to everyone who participated! Here's who won.


1st place: Àngel - Bash (95 characters)
2nd place: Martin Büttner - Mathematica (182 bytes)
2nd place: Emilio M Bumachar - Pyg (92 ?)
2nd place: Peter Taylor - Golfscript (98 characters)
3rd place: Mark Thomas - Ruby (127 characters)


Wow, three second place ties. Wow. The competition is over, but feel free to submit entries if you want to. Bai!
bash (95 chars)

Save the script as m in a folder in your PATH with execute bit set.

Run as bash m. The plates are stored in file p

l(){ tr -dc $1&lt;/dev/urandom|head -c3;};egrep -ve"ASS|666|69|KKK|SHT" -fp&gt;&gt;p&lt;&lt;&lt;`l 0-9`-`l A-Z`;m


This is equivalent to running the following:

# Print three random numbers and three random letters
echo $(tr -dc 0-9 &lt; /dev/urandom | head -c3)-$(tr -dc A-Z &lt; /dev/urandom | head -c3) |

# Print only plates not matching the blacklist or any line of p
# Append the plates ton p
egrep -v -e "ASS|666|69|KKK|SHT" -f p &gt;&gt; p

# Execute itself again
m 


Caveat: The final m should actually be exec m (+5 chars) in order to avoid leaving processes waiting for completion (but you can have thousands without much problem)

Credit goes to  http://www.cyberciti.biz/faq/linux-random-password-generator/ for the idea of using tr -dc