Have you looked at ‘Copy Along Path’? ‘Copy Along Path’ allows you to select an object (circle) and a path, then specify the number of copies or the distance between each copy to be duplicated along that selected path object.