Given: a unit sphere S with $M:=(0,0,0)$ and
a normal unit vector $n_0:=(n_x,n_y,n_z)$ to a plane E containing $M$,
further a parameter $t \in [0,2\pi)$.
The intersection of S and E defines a great circle C with center $M$.
Wanted: a parametric equation of the coordinates of points $P(t)$ in the circumference of C in polar $(\Phi (t),\Theta (t))$ or Cartesian coordinates $(x(t),y(t),z(t))$.
Had some trouble derivation, maybe there is a ready to go resolution which will be used for programming in Python language.
OK. Let's start by finding two vectors, $u$ and $v$, orthogonal to $n$ and each other. My favorite approach is this: look at the two largest (in absolutely value) coordinates of $n$. Let's say they're the $x$ and $y$ coordinates. Then we build a vector $$ b = \pmatrix{-n_y\\n_x\\0} $$ which is (a) nonzero, and (b) orthogonal to $n$. [If the two largest entries had been $n_x$ and $n_z$, you'd let $b = \pmatrix{-n_z \\ 0 \\ n_x}$; I'll let you figure out the third possibility.]
Then let $u = \frac{1}{\|b\|}b$ , and $v = n \times u$.
Then define $$ x(t) = \cos(t) u_x - \sin(t) v_x\\ y(t) = \cos(t) u_y - \sin(t) v_y \\ z(t) = \cos(t) u_z - \sin(t) v_z $$ and you're done. That's perhaps better expressed as $$ P(t) = \cos(t) u + \sin (t) v . $$
Small postscript: Folks tend to not like step 1, where they have to find the two largest coordinates, arguing that there should be a simple formula for a vector $v(n)$ orthogonal to $n$. But the "can't comb the hair on a billiard ball" theorem shows that there is no such formula, at least if you want $v$ to vary continuously as a function of $n$. If you're willing to go with a discontinuous formula...well, that's what my "pick the two largest entries" actually is. There's a nifty paper somewhere that points out that by using clever tricks relating to the IEEE floating point representation of numbers between 0 and 1, there's a formula you can write in many programming languages without using anything "if"-like (including no "modulo" operations) --- I seem to recall it includes masking to select certain bits in the the FP representation, and then doing bit-wise magic --- but practically speaking, you probably want something like what I described, because a year from now it'll be a lot easier to debug!