It's not clear if your "vector" is an unordered set of $N$ discrete objects, but that's what it seems like. You can simply define a distance metric e.g. like:
$$
d(x,y) = \left[\gamma+ \sum_i \sum_j L[x_i,y_j] \right]^{-2}
$$
where $\gamma\in\mathbb{R}^+$ and
$$ L[x_i,y_j] = \begin{cases} 1 &\text{if} \;\;x_i = y_j\\ 0 & \text{otherwise}
\end{cases} $$
Or if you view each $x$ as a set, you can use something like:
$$ \tilde{d}(x,y) = \left( \gamma + \frac{1}{N}\sum_k {1}_{x_k\in y} \right)^{-1} $$
Then run pretty much any clustering algorithm using this metric.
As for the clustering being dynamic, you basically have to use a clustering algorithm that does not take the number of clusters as inputs.
Algorithms like mean shift, affinity propagation, dbscan, or a Bayesian Gaussian mixture with a Dirichlet prior. You can get coordinates, if desired, by using the distance matrix $D$, where $D_{ij} = d(x_i,x_j)$, with an embedding algorithm like multidimensional scaling.
These two questions ([1] and [2]) are related. Some nice papers I saw that can do dynamic estimation of the number of clusters with online updates are:
Sequential clustering with particle filtering - Estimating the number of clusters from data by Schubert & Sidenbladh
Revisiting k-means: New Algorithms via Bayesian Nonparametrics by Kulis & Jordan
Dynamic Clustering via Asymptotics of the Dependent Dirichlet Process Mixture by Campbell et al
Streaming Clustering with Bayesian Nonparametric Models by Huynh & Phung