在矩形中随机放置N个圆圈而不会重叠

我想在给定大小的矩形中放置具有给定公共半径的N个圆,以使圆在Python中不重叠。我当前的解决方案是:

1)在空间中创建每个点的集合,并从中删除将导致重叠的点,然后再生成下一个圆(但是,矩形较大时,它会很慢)。

2)从一组不重叠的点(例如,每2r + const)绘制球的中心(但此处的位置不够随机)。

您还有其他更有效的想法吗?