Consider the string `"adfa"` and the following rules: 
```Pearl
a) each character MUST be changed either to the one before or the one after in alphabet. 
b) "a" can only be changed to "b" and "z" to "y". 
```
From our string, we get:
```Pearl
"adfa" -> ["begb","beeb","bcgb","bceb"]
Another example: "bd" -> ["ae","ac","ce","cc"]
--We see that in each example, one of the possibilities is a palindrome.
```
I was working on the code for this but I couldn't quite figure it out. So far I have:

```python
def solve(st):
    return [all(ord(x) - ord(y) in ["FIX"] for x, y in zip(st, st[::-1]))][0]
```
I'm not sure what three numbers go into the array labelled `["FIX"]`. This is the only thing missing. 

You will be given a lowercase string and your task is to return `True` if at least one of the possiblities is a palindrome or `False` otherwise. You can use your own code or fix mine. 

More examples in test cases. Good luck!

Source: codewars | Difficulty: EASY

Starter code: def solve(st):
	

Solutions:
def solve(st):
	return all((True if ord(x) - ord(y) in [-2, 0, 2] else False for (x, y) in zip(st, st[::-1])))


def solve(st):
	return all((abs(ord(x) - ord(y)) in {0, 2} for (x, y) in zip(st, st[::-1])))


def solve(stg):
	return all((ord(x) - ord(y) in {-2, 0, 2} for (x, y) in zip(stg, stg[::-1])))


solve = lambda s: all((abs(ord(s[i]) - ord(s[-i - 1])) in [0, 2] for i in range(len(s) // 2)))


def solve(stg):
	return all((abs(abs(ord(x) - ord(y)) - 1) == 1 for (x, y) in zip(stg, stg[::-1])))


solve = lambda s: all((abs(ord(x) - ord(y)) in (0, 2) for (x, y) in zip(s, s[::-1])))