Classic approaches for clustering a set of points are either top-down or bottom-up.
At high level:
Top-down (or Divisive): you start with a single cluster, then split a single point or a bunch of points to have two clusters. And so on, until each point is a cluster. You then choose "the best" partition of the dendrogram formed.
Bottom-up (or Agglomerative): you start with each point as a single cluster, then select the best pair of points to merge into a cluster by some distance, then again and again, until you have a single cluster. Then choose best partition.
Is there an algorithm which combines both? A-la stepwise regression, in which the "direction" could be "both", meaning that in each stage we choose to add or remove a variable. In clustering with "both" direction we would have at each stage a merge or a split. Until some stopping criteria.
Is there an implementation of this algorithm? (Python, R, ...)