We introduce an efficient synchronization model that organizes a population of discrete Integrate and Fire oscillators into stable and structured groups. Each oscillator fires synchronously with all the others within its group, but the groups themselves fire with a constant phase difference. The structure of the synchronized groups depends on the choice of the coupling function. We show that by defining the interaction between oscillators according to the relative distance between them, our model can be used as a general clustering algorithm that is simple, efficient, robust, unbiased by the size of the clusters, and that can find an arbitrary number of clusters. In addition to helping the model self-organize into stable groups, the synergy between clustering and synchronization reduces the computational complexity significantly. The resulting clustering algorithm has several advantages over conventional clustering techniques. In particular, it can generate a nested sequence of partitions, and can determine the optimum number of clusters in an efficient manner. Moreover, since our approach does not involve optimizing an objective function, it is not sensitive to initialization, and can incorporate non-metric similarity measures. We illustrate the performance of our algorithms with several synthetic and real data sets.