Random circles without overlap in python
Draw N centers randomly. For every center compute the distance to the nearest neighbor and assign half that distance as the radius (or a little less). This will ensure no overlap.

Note that you said nothing about the desired distribution of radii and this answer only fulfills the non-overlap constraint.
I want to create datapoints which form non overlapping circle shapes; so far I was able to generate randomly distributed circles but without considering the non-overlapping feature.
How can I implement that these circles do not overlap while creating for example 2 (number_circles = 2) of them?