GQL does not support DISTINCT queries. The closet you can do is put the results into a set and check how many entries are in a set. If less than four, query for additional records.
This answer is more in depth: Python: DISTINCT on GQuery result set (GQL, GAE)
Otherwise, such distinct list need to be pre-computed. GAE follows a mantra of expensive writes to enable super-fast reads.