Permanent hair colours penetrate right into the cortex level of the hair, therefore it permanently changes the natural fabric and colour of the hair. This results in longer lasting colour results.
Semi permanent hair colours penetrate the first level of the hair, resulting in colour results, that are not permanent. They last for a couple of washes, depending on the texture of the hair.