Observe that the generating function of these cards is given by
$$(A_1+A_2+\cdots+A_{13})(X_1+X_2+X_3+X_4).$$
It follows by the Polya Enumeration Theorem (set operator) that the
generating function of seven cards being chosen from these is
$$Z(P_7)((A_1+A_2+\cdots+A_{13})(X_1+X_2+X_3+X_4))$$
where $Z(P_7)$ is the cycle index of the set operator acting on seven
slots.
Now using Inclusion-Exclusion to remove those terms where some
suits are missing we get
$$\sum_{S\subseteq X} (-1)^{|S|}
\left.Z(P_7)((A_1+A_2+\cdots+A_{13})(X_1+X_2+X_3+X_4))\right|_{S=0}.$$
The substitution rule for the cycle index says that we use
$$a_d = (A_1^d+A_2^d+\cdots+A_{13}^d)(X_1^d+X_2^d+X_3^d+X_4^d).$$
This yields
$$a_d = 13 \times (4-|S|).$$
We thus obtain
$$\sum_{k=0}^4 {4\choose k} (-1)^k Z(P_7)_{a_d = 13(4-k)}.$$
The cycle index in question is
$$Z(P_7) =
{\frac {{a_{{1}}}^{7}}{5040}}-{\frac {{a_{{1}}}^{5}a_{{2}}}{
240}}+{\frac {{a_{{1}}}^{4}a_{{3}}}{72}}+1/48\,{a_{{1}}}^{3}{a
_{{2}}}^{2}\\
-1/24\,{a_{{1}}}^{3}a_{{4}}-1/12\,{a_{{1}}}^{2}a_{{
2}}a_{{3}}-1/48\,a_{{1}}{a_{{2}}}^{3}+1/10\,{a_{{1}}}^{2}a_{{5
}}\\+1/8\,a_{{1}}a_{{2}}a_{{4}}
+1/18\,a_{{1}}{a_{{3}}}^{2}+1/24
\,{a_{{2}}}^{2}a_{{3}}-1/6\,a_{{1}}a_{{6}}\\
-1/10\,a_{{2}}a_{{5}
}-1/12\,a_{{3}}a_{{4}}+1/7\,a_{{7}}.$$
We get $76200748$ favorable cases for a probability of
$$76200748 \times {52\choose 7}^{-1}
= {\frac {63713}{111860}} \approx 0.5695780440.$$
The Maple code for this was as follows.
pet_cycleind_set :=
proc(n)
local p, s;
option remember;
if n=0 then return 1; fi;
expand(1/n*add((-1)^(l-1)*a[l]*
pet_cycleind_set(n-l), l=1..n));
end;
X :=
proc()
option remember;
local k, res, ind, subsl;
ind := pet_cycleind_set(7);
res := 0;
for k from 0 to 4 do
subsl := [seq(a[d]=13*(4-k), d=1..7)];
res := res +
binomial(4,k)*(-1)^k*subs(subsl, ind);
od;
res;
end;
The set operator was documented at this MSE
link and the
inclusion-exclusion argument at this MSE link
II.
It appears this problem is just simple enough to be treated by
total enumeration. The following Perl script does this, using about
twenty-five minutes of computation time to produce the answer
$$76200748.$$
#! /usr/bin/perl -w
#
sub choose {
my ($src, $sofar, $fref) = @_;
my $sel = scalar(@$sofar);
if($sel == 7){
my %suits = ();
@suits{ map { $src->[$_]->[0] }
@$sofar } = (1) x 7;
$$fref++ if scalar(keys(%suits)) == 4;
return;
}
my $base = 0;
$base = $sofar->[-1] + 1 if $sel > 0;
for(my $idx = $base; $idx < 52; $idx++){
push @$sofar, $idx;
choose($src, $sofar, $fref);
pop @$sofar;
}
return;
}
MAIN : {
$| = 1;
my $cards = [];
for(my $suit = 1; $suit <= 4; $suit++){
for(my $card = 1; $card <= 13; $card++){
push @$cards, [$suit, $card];
}
}
my $favorable = 0;
choose($cards, [], \$favorable);
print "$favorable\n";
}