15
txxtxttxxttxtxx
 3
myw
 127
xixtxixnxixtxixlxixtxixnxixtxixoxixtxixnxixtxixlxixtxixnxixtxixhxixtxixnxixtxixlxixtxixnxixtxixoxixtxixnxixtxixlxixtxixnxixtxix
 1
a
 10
isssisssss
 2
ff
 1
z

27824
 10
 944124121
 1
 176
 1
 1

#include <bits/stdc++.h>
char s[5001];
int dp[27][5001], sum[5001];
int c[5001][5001];
const int mod = 1000000007;
inline int add(int a, int b) { return a + b - mod >= 0 ? a + b - mod : a + b; }
inline int sub(int a, int b) { return a - b + (a - b < 0 ? mod : 0); }
void cnk(int n) {
  for (int i = 0; i <= n; i++) {
    c[i][0] = c[i][i] = 1;
    for (int j = 1; j < i; j++) c[i][j] = add(c[i - 1][j - 1], c[i - 1][j]);
  }
}
int main() {
  int n, ans = 0;
  scanf("%d%s", &n, s + 1);
  cnk(n);
  sum[0] = 1;
  for (int i = 1; s[i]; i++) {
    int ch = s[i] - 'a';
    for (int j = i; j; j--) {
      sum[j] = add(sum[j], sub(sub(sum[j - 1], dp[ch][j]), dp[ch][j - 1]));
      dp[ch][j] = sub(sum[j - 1], dp[ch][j - 1]);
    }
  }
  for (int j = 1; j <= n; j++) {
    ans = add(ans, (long long)c[n - 1][j - 1] * sum[j] % mod);
  }
  printf("%d", ans);
}
