Right now, I'm thinking of basically doing this:
-user selects edge and runs the script
-script identifies all which mesh vertices make up the selected face (ie...a quad would use up 4 specific vertices)
-script them selects all other faces that also use those vertices (ie, basically perform a "grow" operation, but manually instead of just using the premade "grow" function
...for kicks and practice)
-script them deselects all of those new faces that one use 1 vertice from the original face (ie, deselect faces positioned diagonally from the original face, and only keep those going left/right and up/down from original face)
-figure out some way to differentiate between left/right and up/down, and deselect whichever set of those is opposite from what the user wants (ie...user wants column of faces, deselect row and vice versa)
-rinse and repeat
In other words (the o's represent faces):
Step1: user selects face
........
...o...
........
Step2: manually perform grow operation
.o.o.o.
.o.o.o.
.o.o.o.
Step3: deselect diagonal faces
....o....
.o.o.o..
....o....
Step4: if, for example, user wants "row"...deselect column faces
........
.o.o.o.
........
Etc etc