God is willing to forgive us, yet some people are not willing to forgive themselves. If God can forgive us for our sins, why would anyone not be willing to forgive himself? Some people feel a need to punish themselves. Others may be called "perfectionists."
Self-punishment never works. Such a person may constantly put himself down for something he did wrong many years ago. Self-punishment disagrees with God's mercy. God knows our sinful nature. The Bible declares that all have sinned. God sent his Son to take the punishment for our sins. In essence, self-punishment rejects the sacrifice of Jesus Christ for our sins.
Perfectionists can't believe that they would do something so wrong and so bad. The essence of this way of thinking is pride. They don't seem to understand that pride itself is a sin. A perfectionist is really thinking that he can be good enough to earn his way with God. His standard is high, too high. He has set himself up for certain failure.
God has provided the way for people to receive mercy, grace, and forgiveness. His name is JESUS. He is the complete and perfect sacrifice for sinners. He died to take away all of our sins. His punishment for us at the cross is sufficient for all our sins. He took our sins in his body at the cross. Those who repent and believe on the Lord Jesus Christ find total forgiveness. "The blood of Jesus, his Son, cleanses us from every sin" (1 John 1:7, NLT). Agree with God. Forgive yourself.