You could start using simple constant values, in order to better understand what is happening.
Try, for instance
from graphics import *
import math
def main():
winName = "circles"
win = GraphWin (winName, 500, 500)
color1 = "red"
x1 = 250
y1 = 250
radius1 = 125
center1 = Point (x1, y1)
circ1 = Circle (center1, radius1)
circ1.setFill (color1)
circ1.draw (win)
color2 = "green"
radius2 = radius1/2
x2 = x1
y2 = y1 - (radius1+radius2)
center2 = Point (x2, y2)
circ2 = Circle (center2, radius2)
circ2.setFill (color2)
circ2.draw (win)
phi = 0
while phi < 2*math.pi:
nx = x1 + (radius1+radius2) * math.sin(phi)
ny = y1 + (radius1+radius2) * math.cos(phi)
dx = nx-x2
dy = ny-y2
x2 = nx
y2 = ny
circ2.move(dx,dy)
phi = phi+math.pi/100
time.sleep(.1)
main()