Movement Grid - Highlighting possible destinations

I am trying to figure out the ‘best’ way in a tile-based game to show the possible destinations for a characters movement.

By showing the possible destinations I mean when you select a character, they are only able to move a limited number of squares total and so it creates a diamond shaped grid around them, that may shrink depending on if there are any non-walkable tiles as destinations, and the path being shortened because obstackles had to be avoided.

I could go without a grid, and have the user pick a tile, the game calculates if there is anyway to reach that tile with obstacles, and then permirs/forbids the character reach that point.

Building from that, the maxiumum set of tiles could be selected, have those which pass through the boundries taken off, plus remove those which are non-walkable, and then check the remaining set to see which are still reachable with obstacles in the way.

My concern with this is how slow it would be, especially if you have a character who can move 6 tiles in a one direction, and then the 15 tiles in between because of diagnols, and trying to check through all of those for possible paths whenever the character is selected.

One idea I had would be to check in quadrants, where the cursor happens to be relative to the character, check that 6x6 area for possible paths, but that may be confusing to a user and they could assume they’re only able to move NE since that is all that highlights.

I’ve only spent a couple days thinking about it in my spare time, so I haven’t had any breakthroughs. I’m wondering if anyone else has a good idea for this.