The bleaching by Chlorine is permanent but by SO2 is temporary. Why?
The difference in the nature of bleaching of sulphur di-oxide and chlorine is because the bleaching of sulphur di-oxide is based on reduction while that of chlorine is based on oxidation.
Sulphur di-oxide, since uses reduction, remove oxygen but due to the atmospheric oxygen the bleached material is again oxidized. Thus, its temporary in nature.
In the case of Chlorine, it reacts in the following manner.
Cl2 + H2 O → 2HCl + [O]
So, this nascent oxygen produced combines with the material to be bleached and oxidizes them into colourless material.