diff --git a/etrago/cluster/disaggregation.py b/etrago/cluster/disaggregation.py
index <HASH>..<HASH> 100644
--- a/etrago/cluster/disaggregation.py
+++ b/etrago/cluster/disaggregation.py
@@ -194,13 +194,10 @@ class Disaggregation:
         """
         clusters = set(self.clustering.busmap.values)
         n = len(clusters)
-        i = 0
         profile = cProfile.Profile()
-        for cluster in clusters:
-            i += 1
-
+        for i, cluster in enumerate(sorted(clusters)):
             print('---')
-            print('Decompose cluster %s (%d/%d)' % (cluster, i, n))
+            print('Decompose cluster %s (%d/%d)' % (cluster, i+1, n))
             profile.enable()
             t = time.time()
             partial_network, externals = self.construct_partial_network(
Stop counting for loop iterations manually

There's no need to do manual counting during a for loop. Python's
`enumerate` is specifically designed to take care of this.
Also, clusters where not iterated over in a deterministic order.
Now they are.