How is your project going? I think the first step is to choose the circles and their order. If the circles have a number (circle 1, circle 2, etc.), then we are talking about permutations. Is there an elegant way to generate the permutations of all the members of a set? - #9 by paulstgeorge
Once you have the circles and the sequence in which they will be ordered, you have the tricky problem of avoiding the line crossing itself. Do you want to do this programmatically, or will you just not use the results that do not obey your rules?
When you are beyond those two steps, the drawing should be quite easy.