Although Portsmouth Harbour is worth a day trip if you are keen on historic vessels - it also has waterside restaurants & a shopping mall; it is not a very good place to use as a base for visiting other places as the train routes are quite slow. London has plenty of fast lines going out to different parts of the country but you firstly have to get to the relevant London station & London has the most expensive accommodation - by & large.
Consider setting up base in another part of the country? Exeter for Devon or Truro for Cornwall? Maybe Conway (Conwy) / Llandudno in north Wales or how about combining that with 2 or 3 nights in Cardiff? In southern England, Salisbury would make quite a good base. (It has trains to Bath in one direction & Portsmouth in another).
I will second the suggestion of Norwich.
Google the places for more info. Put "Visit …" for official tourist board web sites.