UnitCircle[t_]={Cos[t],0,Sin[t]}

CircleFromOriginToOne[t_]:=((UnitCircle[t]+{1,0,0})/2)

CircleFromOriginToXY[{x_,y_}]:=(({{x, -y, 0}, {y, x, 0}, {0, 0, (Sqrt[(x^2)+(y^2)])}})).CircleFromOriginToOne[#]&

CircleFromAtoB[a_,b_]:=CircleFromOriginToXY[b-a][#]+{a[[1]],a[[2]],0}&

DrawCircle[c_]:=ParametricPlot3D[c[t],{t,0,π}]

DrawCircle[CircleFromAtoB[{1,1},{2,3}]]

GetCirclesBetweenTwoLists[A_,B_]:=Flatten[Table[CircleFromAtoB[A[[i]],B[[j]]],{i,1,Length[A]},{j,1,Length[B]}],1]

GetCirclesBetweenPointsInList[A_]:=GetCirclesBetweenTwoLists[A,A]

DrawListOfCircles[L_]:=Show[DrawCircle/@L,PlotRange->All]

DrawListOfCircles[
GetCirclesBetweenTwoLists[
{{0,0},{1,1}},
{{1,2},{3,4}}
]
]

f[x_]:=If[Abs[x]<1,Abs[x]^(1/3),1]

Plot[f[x],{x,-3,3},PlotRange->All]

ListOfPoints=
Union[
Table[{1/(x^2),f[1/(x^2)]},{x,-10,-2}],
Table[{-1/(x^2),f[-1/(x^2)]},{x,2,10}]

];

DrawListOfCircles[GetCirclesBetweenPointsInList[ListOfPoints]]