Cooperation is very important for a society. Social norm is regarded as a mechanism to maintain cooperation among large amount of self-interested individuals. The theoretical works of Ohtsuki etc. find the social norms that can make cooperation evolutionarily stable, hence, realize sustained cooperation. But the comparison of these social norms is not studied. This paper proposes a co-evolution model of social norms and individual strategies. There are many competing groups in a society with different social norms. Individuals interact within a group and they learn to use the most profitable strategies. In the higher level, groups learn to take the better social norms according to average payoff of groups. It is found that different social norms are suitable for different conditions. Under conditions with most individuals cooperating, Kandori norm is the best choice. Under conditions with few individuals cooperating, the Simple-Standing norm is the best choice. The effect of group size to the evolution of cooperation is also studied and it indicates that the larger a group is, the slower it converges to cooperation.