Subclusters in clusters is elementary (following the classic KMeans approach - N of clusters, that is): just get the clustered points within a given cluster and and give them a second (or Nth) spin: a case for a proper recursion (if the custering depth is worth the name).
That said: classic hard flat KMeans yields populations depending on topology meaning that the population per cluster is rather unpredictable (only the N of clusters matters). See the hard flat KMeans Method in the V1 above for the “standard” logic used. On the other hand if the pList doesn’t have some restrictive meaning you can cheat as well (take x items from a given cluster and leave the rest in piece … etc etc)
Your goal (i.e. cluster on a per predefined N of items) requires a different take (i.e a special break condition) : stop sampling points (in a given cluster) when the population on hand is > a given number (meaning that your intitial collection may not being fully consumed) AND/OR finish the cluster and “release” the not taken points for the next clusters etc etc. This opens the door for a bastard kind of flat soft clustering, mind.
1M Q: are you in fact after HAC clustering?
On the other hand see this (using rnd demo points with local density spots): what could be the solution in such a case according your goal?
Clusters_KMeansOnRndPoints_EntryLevel_V1A.gh (184.6 KB)
Update: added a sort option and a 3rd demo case that begs for a fuzzy CMeans (Google that one) clustering
Clusters_KMeansOnRndPoints_EntryLevel_V1B.gh (194.8 KB)