I just figured out a way to implement my idea above, let's say I want to find out all neighboring areas for area n:
# define subsystem n and let it only contains area n
psspy.bsys(sid=n, usekv=0, numarea=1, areas=[n])
# fetch all tie branches for area n (i.e. subsystem n)
ierr, (frombus,) = psspy.abrnint(n, 1, 2, 3, 1, 'FROMNUMBER')
ierr, (tobus,) = psspy.abrnint(n, 1, 2, 3, 1, 'TONUMBER')
# combine fbus and tbus to one list
tiebuses = frombus + tobus
print "tiebuses", tiebuses
# fetch all bus numbers for entire system
ierr, (busNums,) = psspy.abusint(-1, 1, 'NUMBER')
ierr, (busAreas,) = psspy.abusint(-1, 1, 'AREA')
# store area number for each toBusnum to a list
nbAreas = []
for i in tiebuses:
nbAreas.append(busAreas[busNums.index(i)])
# since nbAreas might contain duplicated area numbers, so remove duplications
nbAreas = list(set(nbAreas))
print "areasincludeCurrOne=", nbAreas
# remove area n itself
nbAreas.pop(nbAreas.index(n))
print nbAreas