By using "kmeans.cluster_centers_" I get the final centroids of every cluster but what if I want to track of all centroids from all iterations and stores result into a list.
Scikit-learn does not provide you with intermediate results and there is no way to do this via standard API. One hacky way to obtain them is by using something like this:
k_means = KMeans(max_iter=1)
for i in range(300):
k_means.fit(X)
intermediate_centers = k_means.cluster_centers_
k_means = KMeans(max_iter=1, init=intermediate_centers)
This is not a fast way and I don't recommend running it on production.