What if we this step doesn't get us to the sample_size? 

You should wrap all of this up in a while loop. If you do that, you also need to handle the case where the requested sample_size is larger than the population of unique combos.