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>
using namespace std;
const int MAX = 5e3 + 5;
const int MOD = 1e9 + 7;
int n;
char str[MAX];
int prv[MAX][26];
int binom[MAX][MAX], dp[2][MAX], partial[2][MAX];
inline int add(int a, int b) {
  a += b;
  if (a >= MOD) {
    a -= MOD;
  } else if (0 > MOD) {
    a += MOD;
  }
  return a;
}
inline int mult(int a, int b) { return (1LL * a * b) % MOD; }
int main() {
  scanf("%d%*c", &n);
  for (int i = int(1); i < int(n + 1); i++) {
    scanf("%c", str + i);
  }
  for (int i = int(0); i < int(n + 1); i++) {
    for (int j = int(0); j < int(i + 1); j++) {
      if (i == j || j == 0) {
        binom[i][j] = 1;
      } else {
        binom[i][j] = add(binom[i - 1][j], binom[i - 1][j - 1]);
      }
    }
  }
  int last[26];
  memset(last, -1, sizeof last);
  memset(prv, -1, sizeof prv);
  for (int i = int(1); i < int(n + 1); i++) {
    for (int j = int(0); j < int(26); j++) {
      prv[i][j] = last[j];
    }
    last[str[i] - 'a'] = i;
  }
  int ans = 0;
  int buf = 0;
  dp[buf][0] = 1;
  for (int i = int(0); i < int(n + 1); i++) {
    partial[buf][i] = 1;
  }
  for (int i = int(1); i < int(n + 1); i++) {
    buf ^= 1;
    partial[buf][0] = 0;
    for (int j = int(1); j < int(n + 1); j++) {
      int v = str[j] - 'a';
      dp[buf][j] = partial[buf ^ 1][j - 1];
      partial[buf][j] = 0;
      if (prv[j][v] != -1) {
        dp[buf][j] = add(dp[buf][j], -dp[buf ^ 1][prv[j][v]]);
        partial[buf][j] -= dp[buf][prv[j][v]];
        if (partial[buf][j] < 0) {
          partial[buf][j] += MOD;
        }
      }
      partial[buf][j] =
          add(partial[buf][j], add(partial[buf][j - 1], dp[buf][j]));
    }
    for (int j = int(0); j < int(26); j++) {
      if (last[j] != -1) {
        ans = add(ans, mult(binom[n - 1][i - 1], dp[buf][last[j]]));
      }
    }
  }
  printf("%d\n", ans);
  return 0;
}
