#include<bits/stdc++.h>
#define REP(i,n) for(int i=0;i<(n);++i)
#define ALL(v)   (v).begin(),(v).end()
#define debug(x) cerr<<#x<<": "<<(x)<<endl
#define INF      (int)1e9
#define MOD      ((int)1e9+7)
using namespace std;
typedef long long     llong;
typedef pair<int,int> pii;
typedef vector<int>   vi;
typedef vector<vi >   vvi;
typedef vector<vvi >  vvvi;
template<class Type> void line(const Type &a){int cnt=0;for(auto &elem:a){if(cnt++)cout<<' ';cout<<elem;}cout<<endl;}

int main(){
	int n;
	cin>>n;
	
	vi x(n);
	REP(i,n) cin>>x[i];
	
	vector<double> dp(n,0);
	dp[1]=1;
	for(int i=2;i<n;++i) dp[i]=dp[i-1]+1.0/i;
	line(dp);
	
	double ans=0;
	for(int i=n-2;i>=0;--i){
		int tmp=x[i+1]-x[i];
		ans+=tmp*dp[n-1-i];
	}
	
	llong tmp=1;
	for(int i=1;i<n;++i){
		tmp*=i;
		tmp%=MOD;
	}
	
	cout<<int(ans*tmp%MOD)<<endl;
}
