Random License Plate Generator

There is random license plate generator. It generates license plates with 3 letters and 3 numbers but it excludes letters Q, W and X in all three letter positions, and 000 in number position. I tried to code this on Python but it showed an error message:

IndexError: list index out of range
The code is this:
import random as o
r=o.randint
t,j,k=[],0,""
b=["Q", "W", "X", "000"]
for i in range(100):
 l,j=b[0],b[4]
 while any(w in l for w in b):
  l,j="",""
  for i in range(3):
   l+=chr(r(65,90))
   j+=str(r(0,9))
 t.append(l+'-'+j)
print ("\n".join(set(t)))

2 Answers

l,j=b[0],b[4]

Here you're getting index 4 but you're only using length of 4, so the last item has index 3, change it to:

l,j=b[0],b[3]

Try it online!

Output:

MLD-767
SMP-526
PIR-280
JBY-473
MRZ-876
VEN-206
FNI-643
ULH-631
ZCK-707
...

There are many ways to do this. Here's another one:

from random import choices, randint

LETTERS = 'ABCDEFGHIJKLMNOPRSTUVYZ'

def gen_number_plate():
    letters = ''.join(choices(LETTERS, k=3))
    numbers = randint(1, 999)
    return f'{letters}-{numbers:03d}'

print(gen_number_plate())

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Marcus Vance

Marcus Vance

Cybersecurity & Digital Privacy Researcher

Marcus Vance is a cybersecurity auditor and technology writer dedicated to educating the public about online safety, data privacy regulations, enterprise security, and emerging cyber threats.

Share this article
Twitter Facebook Pinterest