Well, since I don't know how your code is...I'll just kinda give you some pseudo code.
Code:
int height=20, width=50;
for (int i=0; i<height; i++){
for (int j=0; j<width; j++){
paint(j,i);
}
}
Hope this is kind of the idea you were looking for. Again, it's just pseudo code, really...but it illustrates the idea. It will fill in the first row horizontally from left to right, then move down to the next row and fill that one in. The outer for loop doesn't increase and move to a new row until the inner loop has executed throughout the entire width of city.
Oh, and that's not recursive...but it should be okay.