Assumption is directly derived from Latin assumptionem which does have a P, so it also has a P. Assume on the other hand is derived from Latin assumere, which didn't have a P.
Other similar examples include presume/presumption and consume/consumption
Articulatory reasons for the P
The epenthetic P is inserted for articulatory reasons.
Epenthesis happens for a variety of reasons such as:
- ease of articulation
- to prevent adjacent vowels in a hiatus (e.g. idea of being pronounced idea[r]of in most non-rhotic accents)
- to simplify consonant clusters (some people—mostly non-native speakers who don't have complex clusters in their native language—pronounce words like screen, scratch, school with a preceding vowel to break the consonant cluster).
Epenthetic stops between nasals and fricatives
There are many situations where epenthetic consonants are inserted. Most of the time when there's a voiceless fricative (/s ʃ θ/ etc) after a nasal (/m n ŋ/), we tend to insert an epenthetic stop (/p t k/ etc) between both the fricative and a nasal.
Here's a good explanation from English after RP by Geoff Lindsey:
The /n/ is a stop sound, which means that the oral airflow of speech is stopped; the tongue blade is held against the alveolar ridge while breath is re-directed through the nose. As /n/ changes to /s/ [which is an oral consonant i.e the air comes out through the mouth], airflow must be switched from nasal to oral, and at the same time the stoppage at the alveolar ridge must be released,
Epenthesis is more likely if the fricative after the nasal is voiceless, when the articulatory system has an additional voicing change to handle [i.e. moving from a voiced sound like /n/ to a voiceless one like /s/]. It’s less likely if the fricative is at the beginning
of a stressed syllable, e.g. inˈsane [not *in[t]sane].
This phenomenon is called epenthesis (excrescence)
The same thing happened to assumption in Latin before it entered English (as Colin Fine explained). There's a voiceless fricative /ʃ/ after a nasal /m/, so when changing from nasal to oral, Latin speakers put an epenthetic stop /p/ (homorganic with the nasal) between the nasal and the fricative.
There are many examples of epenthetic stops in present day English:
- youngster is usually pronounced young[k]ster, (with an epenthetic k between the nasal [ŋ] and the oral fricative [s])
- warmth and hamster are often pronounced warm[p]th and ham[p]ster, respectively (with an epenthetic p)
- thunder used to be þunor, the d is epenthetic.
- In some English accents, wants and once are pronounced identically i.e. 'once' with an epenthetic t (from another answer).