Let me see if you understand you: you need an Bezier interpolating curve passing through a given set of points P0 P1 ...
but drawn like bezier curves with a function like
bezier4( nstep, Pj, Cj, Dj, Pj+1 )
That is, you want to get two Bezier control points Cj, Dj for each part of Pj - Pj + 1?
One way to obtain such control points is to use Bernstein's polynomial basis
b0(t) = (1-t)^3 b1(t) = 3 (1-t)^2 t, b2(t) = 3 (1-t) t^2 b3(t) = t^3 bezier4(t) = b0(t) P0 + b1(t) C0 + b2(t) D0 + b3(t) P1 = P0 at t=0, tangent
and find or output the Catmull-Rom interpolation alloy that passes through P-1 P0 P1 P2:
b0(t) P0 + b1(t) (P0 + (P1 - P-1) / 6) + b2(t) (P1 - (P2 - P0) / 6) + b3(t) P1 = P0 at t=0, P1 at t=1
We want bezier4 (t) to be exactly the same curve as CatmullRom (t), therefore:
C0 = P0 + (P1 - P-1) / 6 D0 = P1 - (P2 - P0) / 6
Given the N points P0 P1 ... (in 2d 3d ... anyd), take them 4 at a time; for each 4 this formula gives you 2 control points Cj, Dj for
bezier4( nstep, Pj, Cj, Dj, Pj+1 )
That makes sense, is that what you want?
(For generosity, I would wander a few Python / numpy together.)