南北朝的时候,南朝基本继承了晋朝,而北朝的北齐则废除了列候(县侯、乡侯、亭侯),剩下六等爵位,也就是王、公、侯、伯、子、男;北周在此基础上,根据古代的周礼细分,于是有了亲王、郡王、县王、国公、郡公、县公、县侯、县伯、县子、县男、乡男,共十一个等级;隋朝和唐朝继承北朝的系统,并做了一些优化调整,取消了县王和乡男,为后来唐、宋、元、明时期的爵位序列奠定了基础。
辽朝和宋朝的爵位和唐朝大致一样,但是宋朝王爵和公爵分得更细一些,包括亲王、嗣王、郡王、国公、郡公、开国公、开国郡公、开国县公、开国侯、开国伯、开国子、开国男,一共十二级。金朝和元朝也有一些细微的调整,但总体来说变化不大。爵位到了明朝,宗室和外族的爵位系统实现了分流。亲王和郡王还是只给宗室,并出现了诸如镇国将军、辅国将军、奉国将军、镇国中尉、辅国中尉、奉国中尉等新的爵位,封给宗室贵胄。它们的名字其实是借用的勋官的名字(这是另一套系统,下面会简单提一下)。公、侯、伯的爵位被保留封给外姓,但是子爵和男爵被废除。具体的封号选择的规则,和隋、唐、宋、元是一样的。
题主的问题,在时间上最相关的,就是隋朝到明朝这一长段历史区间。唐朝的爵位比较有代表性,我们可以详细说一下,来谈封号的选择。
唐朝正式爵位的等级分为九等:
亲王:正一品,食邑万户。
郡王:从一品,食邑五千户。
国公:从一品,食邑三千户。
郡公:正二品,食邑二千户。
县公:从二品,食邑一千五百户。
县侯:从三品,食邑一千户。
县伯:正四品上,食邑七百户。
县子:正五品上,食邑五百户。
县男:从五品上,食邑三百户。
亲王、郡王都是王爵,原则上只给宗室成员,别的爵位大家都可能得到。食邑在这里比较有意思。如果在封爵位的时候,有“食实封”这么几个字,那么这个人就能得到相应封户的租调税收。然而一般情况下这是没有的,因此这些食邑只是虚的,并不能给这个人带来什么实惠。爵位名称的来历比较多样。例如王爵,大家一般比较关注单字王和二字王的差别。这个差别在隋唐以后体现得比较凸出。
先说亲王,亲王一般是以州的地名或东周列国的国名来封授。因为州或东周列国的名字一般就只有一个字,所以亲王的封号一般只有一个字,民间俗称一字王或单字王。戏曲小说里所谓的“一字并肩王”,估计就是这么来的。比如,题主说的朱元璋的这几个儿子:燕王、赵王、楚昭王、齐恭王,实际上都是亲王,而且是地位不错的亲王,因为燕国、赵国、楚国和齐国都是战国七雄,是很好的封号。有人说不对,单字王是亲王,而楚昭王、齐恭王是两个字呀,难道不是郡王么?不是,因为“昭”和“恭”在这里不是爵位封号的一部分,而是他们死后,后人给他们上的谥号,相当于齐桓公的“桓”以及汉武帝的“武”。再比如说,唐朝玄武门之变以后,李世民追封李建成为息王,同时给了个还不错的谥号“隐”,因此后人称李建成为息隐王。后来李世民把“太子”之位还给了李建成,因此李建成也叫做隐太子。电视剧《贞观长歌》里魏征一出场就说隐太子怎样怎样,这是不科学的。同理,李元吉被追封为海陵王,后来追升为巢王,谥号是个恶谥叫做“剌”,因此后人就叫他巢剌王。还有他们那个传说中会抡锤子(仅限传说中)的老三李玄霸,死后追封为卫王,谥号叫“怀”,因此也叫卫怀王。实际上这里的息隐王、卫怀王和巢剌王也都是亲王。
郡王是以郡县的地名来封授,而郡县的名称是两个字的居多,因此民间俗称它们为二字王,例如常山郡王、零陵郡王、琅琊郡王、中山郡王、北平郡王、河间郡王、江夏郡王等等。他们也可以简称为例如常山王、零陵王、琅琊王、中山王、北平王、河间王、江夏王等等。当然也有例外,比如对于一些功劳非常高的宗室成员,或者一些归降过来的义军首领或少数民族领袖,中央王朝有时候会给一些非常好的郡王封号,来拉拢人心。例如唐初的赵郡王李孝恭和燕郡王李艺(其实就是罗艺,赐姓李),他们的简称就是赵王和燕王,看起来和亲王一样,实际上他们是郡王。
国公这一级的封号来历就多了,至少有三种:第一种就是和上面一样,按照这个人的功劳和威望来选择封地,例如功劳很高的可以封为魏国公、赵国公、楚国公等等,功劳较高的可以封越国公、代国公、鲁国公等等。
第二种可以是受封者的老家,比如你是山东人就封你作鲁国公,你是河东人就封你作晋国公,你是南方人就封你作越国公或楚国公,你是河北人就封你作赵国公,等等。
第三种是取美称,一般人没这个待遇,只有功劳极高的人才能得到这种封号,特别是集中在唐朝和清朝,例如唐朝的卫国公李靖(所以世称李卫公,有兵书《李卫公问对》)、英国公李勣(就是徐世勣,字懋功)、宿国公程咬金(后改为卢国公)、翼国公秦叔宝(后改为胡国公)、褒国公段志玄、勋国公殷开山等等。郡公以下的封号。大多数都是以县的名字来封授的,当然县之间也有差别,像比较富饶的县一般给了比较重要的人。