Stack Exchange
What is the maximum number of character changes for different Unicode normalization form?
Using different Unicode normalization forms may result in different length of output for the same input. For example:
>>> import unicodedata
>>> c = "å"
>>> a = len(unicodedata.normalize("NFC", c))
>>> b = len(unicodedata.normalize("NFKD", c))
>>> print(a, b)
1 2

When you change c, what is the maximum value of b/a?

As of the time of writing (Unicode 13.0), the biggest length difference between a character’s NFC and NFKD expansions is a factor of 18. U+FDFA ﷺ ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM is unaffected by normalisation forms C and D, but decomposes into a sequence of 18 codepoints (صلى الله عليه وسلم) under KC and KD.
However, there is no formally defined limit to this in the standard. Future updates could in theory add a new character with an even longer decomposition mapping. The Unicode Standard only guarantees an upper bound for NFC. Per Unicode Stability Policy:

Canonical mappings (Decomposition_Mapping property values) are always
  limited so that no string when normalized to NFC expands to more than
  3× in length (measured in code units).

