Due to the cyclist remark about homework, I am just starting the script. It leaves out certain patterns like 'a9a9' since it is just using combinations. How you rearrange the unique patterns is up to you.
a_26_2 = nchoosek('a':'z',2);
n_10_2 = nchoosek('0':'9',2);
a_26_2f = [a_26_2; fliplr(a_26_2)];
n_10_2f = [n_10_2; fliplr(n_10_2)];
By merging all possibilities, you can get 650*90 (almost 60,000) unique 4 char id's.